【发布时间】:2014-04-23 12:02:21
【问题描述】:
下一个 C# 版本计划(2014 年 4 月)使用二进制文字,如您在 Language Features Status of Roslyn project 中所见。
该页面中的示例是这样的:
0b00000100
所以你可能会这样使用:
var myBynaryLiteral = 0b00000100;
我想了解他们为什么选择在此前缀上加上0b,而不是像double、float、decimal 等那样在末尾使用一个字母。
double a = 1d;
float b = 1f;
decimal c = 1m;
【问题讨论】:
-
后缀与类型有关(
f,m),前缀与基数有关(0b,0x)。 -
你能解释更多@FrédéricHamidi吗?从未使用过十六进制文字,但看起来就像您所说的
0x。这是一个坚实的观点。 -
@Vitor:八进制是以 8 为底,十六进制是以 16 为底。(八进制曾经相当普遍,但现在你看不到太多了。)在十六进制中,你使用数字 0-9, A 代表 10,B 代表 11,依此类推,直到 F 代表 15。十六进制的优点是一个字节可以用两位数表示(半字节或“nybble”由一位数表示)。例如,
0x77是0111 0111(或0b01110111)。