byte类型如何转换成int类型?

birditren2001 2003-11-05 02:30:17
下面是我写的一个测试程序,为什么两个print出来的不一样?应该是这行出了问题,
int rtime = ((time[0] << 24) + (time[1] << 16) + (time[2] << 8) + time[3]);
我该如何把byte类型如何转换成int类型?

import java.util.*;
public class HelloDate {
public static void main(String[] args) {
System.out.println("Hello, it's: ");
System.out.println(new Date());
java.text.SimpleDateFormat f=new java.text.SimpleDateFormat("MMddhhmmss");
java.util.Date d=new java.util.Date();
String stime = f.format(d);
System.out.println(stime);
int itime = Integer.parseInt(stime) ;
byte time[] = new byte[1024*3] ;
System.arraycopy(int2byte(itime),0,time,0,4) ;
int rtime = ((time[0] << 24) + (time[1] << 16) + (time[2] << 8) + time[3]);
System.out.println(rtime) ;
}
private static byte[] int2byte(int n)
{
byte b[] = new byte[4];
b[0] = (byte)(n >> 24);
b[1] = (byte)(n >> 16);
b[2] = (byte)(n >> 8);
b[3] = (byte)n;
return b;
}

}
...全文
667 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
cbhyk 2003-11-05
  • 打赏
  • 举报
回复
应该这样写:
int rtime = ((time[0]&0xff) << 24) + ((time[1]&0xff) << 16) + ((time[2]&0xff) << 8) + (time[3]&0xff);
birditren2001 2003-11-05
  • 打赏
  • 举报
回复
int rtime = (((time[0]&0xff) << 24) + ((time[1]&0xff) << 16) + ((time[2]&0xff) << 8) + time[3]&0xff);
这个好像不对,不信楼上的大哥测试一下看看.
cbhyk 2003-11-05
  • 打赏
  • 举报
回复
int rtime = (((time[0]&0xff) << 24) + ((time[1]&0xff) << 16) + ((time[2]&0xff) << 8) + time[3]&0xff);
hyhu 2003-11-05
  • 打赏
  • 举报
回复
((千位*10+百位)*10+十位)*10+个位
birditren2001 2003-11-05
  • 打赏
  • 举报
回复
可是我的int数值被打成4个byte来存放的,我要如何组织成原来的int数值?
buzhiming99 2003-11-05
  • 打赏
  • 举报
回复

public class Converter {

public static byte[] toByteArray(int number)
{
int temp = number;
byte[] b=new byte[4];
for (int i = b.length - 1; i > -1; i--)
{
b[i] = new Integer(temp & 0xff).byteValue();
temp = temp >> 8;
}
return b;
}

public static int toInteger(byte[] b)
{
int s = 0;
for (int i = 0; i < 3; i++)
{
if (b[i] >= 0)
s = s + b[i];
else
s = s + 256 + b[i];
s = s * 256;
}
if (b[3] >= 0)
s = s + b[3];
else
s = s + 256 + b[3];
return s;
}
}
hyhu 2003-11-05
  • 打赏
  • 举报
回复
byte的intValue()可返回int值!!

62,629

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧