【发布时间】:2018-04-18 21:03:35
【问题描述】:
我正在阅读我的 Scala 教科书,我看到了这个:
scala> val hex = 0x5
hex: Int = 5
scala> val hex2 = 0x00ff
hex2: Int = 255
scala> val hex3 = 0xff
hex2: Int = 255
scala> var hex4 = 0xbe
magic: Int = 190
scala> var hex5 = 0xFF
magic: Int = 255
val magic = 0xcafebabe
magic: Int = -889275714
scala> var prog = 0xCAFEBABEL
prog: Long = 3405691582
scala> val tower = 35l
tower: Long = 35
我的问题:
为什么在
0x00FF中的x之后需要额外的00?我明白为什么
FF= 255... 十六进制是 base16,从 00 = 0 和 0F = 15 开始。但为什么0xcafebabe= -889275714?为什么会出现多头?我不明白这是怎么回事?
【问题讨论】:
-
#2 - 正数和负数以称为“二进制补码”的二进制格式存储。阅读它here。
标签: scala integer long-integer