二进制字面量
固定值称为字面量。字面量是变量使用的值。在C#7.0之前,可以使用六种类型的字面量,它们是整数,浮点数,字符,字符串,空值,布尔字面量。在C#7.0中,添加了另一个字面量,即Binary 字面量 。二进制字面量用于将二进制值存储在变量中。二进制字面量用0b表示。二进制字面量主要用于位掩码。
例子:
var num = 0b10001
在这里,当编译器在变量值中看到0b时,它会自动将此num视为二进制字面量。如果尝试在C#7.0以下的编译器上运行此功能,则编译器将引发错误,因为此功能是C#7.0中引入的,因此,它将仅在C#7.0及更高版本的编译器上起作用。
例子:
// C# program to illustrate the
// concept of binary literals.
using System;
class GFG {
// Main method
static public void Main()
{
// Creating binary literals
// by prefixing with 0b
var num1 = 0b1001;
var num2 = 0b01000011;
Console.WriteLine("Value of Num1 is: " + num1);
Console.WriteLine("Value of Num2 is: " + num2);
Console.WriteLine("Char value of Num2 is: {0}",
Convert.ToChar(num2));
}
}
输出:
Value of Num1 is: 9
Value of Num2 is: 67
Char value of Num2 is: C
数字分隔符
C#7.0中引入了数字分隔符的概念。借助数字分隔符,您可以将大量数字分成小部分,从而使您的代码更具可读性。下划线( _ )用作数字分隔符。在代码中使用数字分隔符时,编译器将忽略它们,因此编译器不会在输出中输出数字分隔符,如下面的示例所示。
例子:
// C# program to illustrate the
// concept of digit separators.
using System;
class GFG {
// Main method
static public void Main()
{
// Without Using digit separators
long x = 100000022200000202;
long z = 10000000020;
Console.WriteLine("X: {0}", x);
Console.WriteLine("Z: {0}", z);
// Using digit separators
long num1 = 1_00_10_00_00_00;
var num2 = 0b_010_000_000_000_000_000_000_000_000;
long num3 = 1_00_00_00_00_00_00;
var num4 = 0b_1_1000_0000_1000_0000_0011_0000_0000_1000_0001;
Console.WriteLine("Num1: {0}", num1);
Console.WriteLine("Num2: {0}", num2);
Console.WriteLine("Num3: {0}", num3);
Console.WriteLine("Num4: {0}", num4);
}
}
输出:
X: 100000022200000202
Z: 10000000020
Num1: 1000110000000000
Num2: 33554432
Num3: 1000000000000000000
Num4: 103213629569