CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

如何由将一个4字节大小的数组中存放的值转换为类型为int变量的值?

楼主newbackup(天空)2004-11-04 10:46:56 在 Java / J2SE / 基础类 提问

java里面int型的数据是由4个字节存放的,  
  现在有一个数组   byte   buf[4],它的4个字节里面存放的是某个int型变量的值,  
  请问各位大侠如何得到这个int型变量的值?  
  在c语言里面根据直接用强制类型转换就行了  
  char   *pbuf   =   buf;  
  int   a   =   (int)(*(int*)pbuf);  
  但在java里面不能对内存进行操作,所以问大家有什么好的解决办法。  
  我想过一个替代的办法:  
  int     a   =   buf[0]*16777216   +   buf[1]*65536   +   buf[2]*256   +   buf[3];  
  但如果这个数组里面存放的是一个float类型的变量,那要得到这个float类型的变量,  
  用上面的方法就极度复杂了。  
  希望大侠指点,java里面对这类问题是怎么处理的或者有没有直接可以用的类,谢谢! 问题点数:20、回复次数:5Top

1 楼haroyy(天平)回复于 2004-11-04 10:54:06 得分 10

ByteArrayInputStream   bais   =   new   ByteArrayInputStream(buf);  
  DataInputStream   dis   =   new   DataInputStream(bais);  
  int   a   =   dis.readInt();Top

2 楼jiangnanyuzi(江南愚子)回复于 2004-11-04 11:04:38 得分 0

楼上好主意!Top

3 楼treeroot(旗鲁特)回复于 2004-11-04 11:24:45 得分 5

int   BytesToInt(byte[]   b){  
        return   (b[0]<<24)|(b[1]<<16)|(b[2]<<8)|byte[3];  
  }  
  肯定比用流快Top

4 楼treeroot(旗鲁特)回复于 2004-11-04 11:31:55 得分 5

看看流实现得源码吧:  
  InputStream   in   =   this.in;  
  int   ch1   =   in.read();  
  int   ch2   =   in.read();  
  int   ch3   =   in.read();  
  int   ch4   =   in.read();  
  if   ((ch1   |   ch2   |   ch3   |   ch4)   <   0)  
            throw   new   EOFException();  
  return   ((ch1   <<   24)   +   (ch2   <<   16)   +   (ch3   <<   8)   +   (ch4   <<   0));  
  }  
  一样,何必去构造一个流呢?  
  对于float  
   
  float   BytesToFloat(byte[]   b){  
        return   Float.intBitsToFloat(BytesToInt(b));  
  }Top

5 楼sylmoon(专注Oracle)回复于 2004-11-04 11:35:06 得分 0

用ArrayListTop

相关问题

  • 数组变量传值的问题
  • 数组变量
  • 求助:能否将一个数组变量赋值给Object变量?
  • 1维字节数组赋值给2维字节数组没有错误,而赋值给1维字节数组却有错误.这是为什么?
  • 怎么把一个string变量赋值给char数组?
  • 奇怪的事情:数组变量的值竟然变了
  • byte数组怎样赋值给String变量?
  • 为何method=post时无法读取变量和数组的值?
  • 控件里的数组变量,赋值和调用的问题.
  • 怎样给字节数组一次性赋值?

关键词

  • 变量
  • 数组
  • 存放
  • 值
  • 类型
  • buf

得分解答快速导航

  • 帖主:newbackup
  • haroyy
  • treeroot
  • treeroot

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo