byteBuffer中getInt();

xieerdewo 2010-07-25 08:38:58
请问这个getInt()到底返回是多少啊?
...全文
474 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
getInt 根据 ByteBuffer 中设定的字节序(默认为 Big-Endian)读取 4 个字节的数据。

假设这 4 个字节依次为 a, b, c, d,那 BE 字节序就采用这样的方式返回 int:

return (((a & 0xff) << 24) | ((b & 0xff) << 16) | ((c & 0xff) << 8) | ((a & 0xff) << 0));

如果是 LE 字节序的话就采用这样的方式:

return (((d & 0xff) << 24) | ((c & 0xff) << 16) | ((b & 0xff) << 8) | ((a & 0xff) << 0));
wander_wait 2010-10-30
  • 打赏
  • 举报
回复
ByteBuffer中getInt()这个函数是抽象(abstract)的,应该将其覆盖后才能使用啊!无法直接使用啊!
xieerdewo 2010-10-30
  • 打赏
  • 举报
回复
谢谢啊
DAVE_LUO 2010-07-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 yao2007 的回复:]
在字节流里读取4个Byte,构成一个Int返回给你咯。从字节流里怎么知道你要的数据类型是什么,只能按照你的意愿去解释字节流,你要int,那就读4个字节解释成int给你,你要char,那就从字节流里读取2个字节解释成char返回给你,你要Byte,你就只读取一个字节返回给你。
[/Quote]
正解,ByteBuffer是个很神奇的东西。
yao2007 2010-07-25
  • 打赏
  • 举报
回复
在字节流里读取4个Byte,构成一个Int返回给你咯。从字节流里怎么知道你要的数据类型是什么,只能按照你的意愿去解释字节流,你要int,那就读4个字节解释成int给你,你要char,那就从字节流里读取2个字节解释成char返回给你,你要Byte,你就只读取一个字节返回给你。
xieerdewo 2010-07-25
  • 打赏
  • 举报
回复 1
我的哥,我也知道是int类型的,但是我想知道他是怎么算出int的
刨冰雨 2010-07-25
  • 打赏
  • 举报
回复

似乎没找到这个方法
getInt() 返回在一定上int 类型的

62,616

社区成员

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

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