Binary 为什么十进制数字的前缀是“X”;0*”;

Binary 为什么十进制数字的前缀是“X”;0*”;,binary,hex,decimal,Binary,Hex,Decimal,为什么写heaxdecimal数的语法类似于0*ffff,而不是写ffff。“0*”是什么意思。它具体说明了什么吗? 无论如何,A、B、C、D、E、F符号仅适用于十六进制数字系统。那么“0*”需要什么呢 抱歉“*”不是字符,我想它是“x”。 它是十六进制数字系统的命名法还是记数法。我不知道你说的是什么语言,但如果你用C#write作为例子 你预计会发生什么?编译器如何知道ffffff是指十进制数16777215的十六进制表示,还是指前面定义的字符串变量 由于标识符(在C#中)不能以数字开头,因此

为什么写heaxdecimal数的语法类似于0*ffff,而不是写ffff。“0*”是什么意思。它具体说明了什么吗? 无论如何,A、B、C、D、E、F符号仅适用于十六进制数字系统。那么“0*”需要什么呢

抱歉“*”不是字符,我想它是“x”。
它是十六进制数字系统的命名法还是记数法。

我不知道你说的是什么语言,但如果你用C#write作为例子

你预计会发生什么?编译器如何知道ffffff是指十进制数16777215的十六进制表示,还是指前面定义的字符串变量

由于标识符(在C#中)不能以数字开头,因此以0和其他字符(在C#中是0xffffff或十六进制,对于二进制IIRC是0B111111111)作为前缀是一种方便的通信数字文本基数的方法


编辑:另一个问题,如果你要写
var myCoolNumber=10
,你怎么知道这是2、10还是16?或者完全其他的东西。

它是用来表示十六进制数字的。不是“*”,实际上是“x”

见:


通常是0xFFFF:字母,而不是乘法符号

至于为什么,
0x
只是最常见的约定,就像一些编程语言允许二进制文件以
0b
作为前缀一样。在一个数字前面加上0通常是八进制或基数8;他们想要一种方法告诉机器以下数字是十六进制的,或以16为基数(
10
!=
0b10
[2]!=
010
[8]!=
0x10
[16])。为了便于阅读,他们通常在识别八进制时省略一个小的“o”

有趣的是,我遇到的大多数基于程序集的实现都使用(或至少允许使用)
0h
,或者也使用

var ffffff = "Some unrelated string";
...
var nowYouveDoneIt = ffffff;