向我解释十六进制'0xf0'中的'x'来自哪里[重复]
Posted
技术标签:
【中文标题】向我解释十六进制\'0xf0\'中的\'x\'来自哪里[重复]【英文标题】:Explain to me where the 'x' in hexadecimal '0xf0' comes from [duplicate]向我解释十六进制'0xf0'中的'x'来自哪里[重复] 【发布时间】:2014-03-12 00:52:17 【问题描述】:十六进制来自0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
。
我很困惑'0x0f'
中的'x'
来自哪里。
如果'0x0f' = '0000 1111'
或'15'
为什么不直接写'0f'
。
很确定这在大多数语言中都是通用的,但如果不是,我正在使用 Java。
谢谢。
【问题讨论】:
它实际上并不是通用的(尽管它很常见)。例如,在某些汇编语言中,您会看到$1234
。
这来自C
,它也是如此。这称为“十六进制”,您可以使用h
,但这与g
非常接近,e
不能使用,因为它已经在十六进制中使用,x
显然不同。
十六进制实际上只有 16 位数字(0-9,A-F),而不是您列出的 17 位。 G
不是十六进制数字。
【参考方案1】:
见JLS:
在十六进制或二进制文字中,整数仅由 0x 或 0b 字符之后和任何类型后缀之前的数字。 因此,下划线可能不会立即出现在 0x 或 0b 之后,或者 在数字的最后一个数字之后。
用于区分碱基。
【讨论】:
【参考方案2】:这是历史性的,Java 继承了 C 的语法。
x
是区分 0377(例如)和 0x377 所必需的,前者的前导零表示它是八进制(以 8 为基数):
377 - base 10
0377 - base 8
0x377 - base 16
【讨论】:
+1 获得简单的示例答案以上是关于向我解释十六进制'0xf0'中的'x'来自哪里[重复]的主要内容,如果未能解决你的问题,请参考以下文章