Long.toHexString是不是有个BUG?

学无止境-逆流而上 2014-02-08 04:43:50
long i=-1098324910;
System.out.println(Long.toHexString(i));
得到
ffffffffbe88e452
而我认为输出应该是be88e452,java没有无符号整数,我就用long来代替,但是Long.toHexString(i)当i是负数的时候,出来多了ffffffff是怎么回事?
...全文
351 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
healer_kx 2014-02-10
  • 打赏
  • 举报
回复
引用 3 楼 raistlic 的回复:
读API。 结果跟你的预期不符合不是bug,结果跟其Java DOC中写明的契约不符合才是bug。
UP
raistlic 2014-02-10
  • 打赏
  • 举报
回复
读API。 结果跟你的预期不符合不是bug,结果跟其Java DOC中写明的契约不符合才是bug。
  • 打赏
  • 举报
回复
我知道不是BUG,其实我用BUG这个字眼是为了吸引更多人回下贴 我现在的做法是如果是负数,我直接去掉ffffffff变成be88e452,这样就与C无符号整数转十六进制结果一样了,但我想了解的是这种做法是不是对的。
aotian16 2014-02-09
  • 打赏
  • 举报
回复
long在计算机中也是用补数存储的啊
msj100ff 2014-02-08
  • 打赏
  • 举报
回复
因为long是64位

62,615

社区成员

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

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