java十六进制取值的问题

我不是稻草人 2012-07-31 04:15:06
byte[] b = new byte[1024]

b[1] = -126

实际这个值是2

其实这是个十六进制。我朋友说b[1]转成十六进制后 & 0x01111111 就能得到b[1]=2了。
但他没时间了,我也不知道怎么写...求大神哇。

补充 b[1] = -127 //实际是1
b[1] = -125 //实际是3
...全文
155 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwwcomcn123 2012-07-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
是啊。求具体JAVA代码哇。。
[/Quote]

问题不是解决了吗 楼主要什么代码
不太理解???
五哥 2012-07-31
  • 打赏
  • 举报
回复
-127 --- 0x11111111 的补码 0x00000000 +1 = 0x00000001
0x00000001 & 0x01111111 = 0x00000001 = 等于十进制的 1了


-125 --- 0x11111101 的补码 0x00000010 +1 = 0x00000011
0x00000011 & 0x01111111 = 0x00000011 = 等于十进制的 3了
我不是稻草人 2012-07-31
  • 打赏
  • 举报
回复
是啊。求具体JAVA代码哇。。
五哥 2012-07-31
  • 打赏
  • 举报
回复
-126 --- 0x11111110 的补码 0x00000001 +1 = 0x00000010
0x00000010 & 0x01111111 = 0x00000010 = 等于十进制的 2了

62,620

社区成员

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

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