Vic*_*Vic 4 java twos-complement
这就是我在java中看到的,它让我感到困惑.
Long.toHexString(0xFFFFFFFF) 回报 ffffffffffffffff
同样,0xFFFFFFFF和Long.parseLong("FFFFFFFF", 16)不相等.
这个:
Long.toHexString(0xFFFFFFFF)
Run Code Online (Sandbox Code Playgroud)
相当于:
Long.toHexString(-1)
Run Code Online (Sandbox Code Playgroud)
这相当于:
Long.toHexString(0xFFFFFFFFFFFFFFFFL)
Run Code Online (Sandbox Code Playgroud)
基本上,问题在于您指定了一个负值int,然后将其转换为等效的负长值,该值由"所有F"组成.如果你真的想要 8 F,你应该使用:
Long.toHexString(0xFFFFFFFFL)
Run Code Online (Sandbox Code Playgroud)
正如其他人所说,0xFFFFFFFF评估为int值-1,将其提升为a long.
为了获得您期望的结果,使用L后缀限定常量以指示它应被视为a long,即Long.toHexString(0xFFFFFFFFL).
| 归档时间: |
|
| 查看次数: |
4267 次 |
| 最近记录: |