C# 6.0 (C# vNext) 新功能之:Numeric Literal Formats

Numeric Literal Formats = Binary literals and separators
个人解释为 「2 位元(2 进位)实字以及分隔符」

以前可以用的,主要就十进位以及十位进位如下:
var num1 = 1234; // 10 进位
var num2 = 0x1234; // 16 进位

2 进位实字怎麽宣告?
var num3 = 0b1010; // 2 进位,代表的 10 进位数字是 10

而当我们使用 2 进位宣告实字时,那数字一下子就会非常的长,比如:
var num10 = 12345;
var num2 = 0b11000000111001;

这时,我们可以加入分隔符 (Separator):
var num2 = 0b11_0000_0011_1001;

这样子比较容易看出每个数字。

分隔符可以用在其他数字类型实字如下:
var num5 = 1_234_567_890; // 10 进位:表示为 123456789
var num6 = 0xFF_FA_88_BC; // 16 进位:换成 10 进位为 4294609084
var num7 = 0b10_01__01_10; // 2 进位:换成 10 进位为 150

最后再看一个例子:
[Serializable]
[Flags]
[System.Runtime.InteropServices.ComVisible(true)]
public enum FileAttributes
{
  ReadOnly =          0b00_00_00_00_00_00_01, // 0x0001
  Hidden =            0b00_00_00_00_00_00_10, // 0x0002
  System =            0b00_00_00_00_00_01_00, // 0x0004
  Directory =         0b00_00_00_00_00_10_00, // 0x0010
  Archive =           0b00_00_00_00_01_00_00, // 0x0020
  Device =            0b00_00_00_00_10_00_00, // 0x0040
  Normal =            0b00_00_00_01_00_00_00, // 0x0080
  Temporary =         0b00_00_00_10_00_00_00, // 0x0100
  SparseFile =        0b00_00_01_00_00_00_00, // 0x0200
  ReparsePoint =      0b00_00_10_00_00_00_00, // 0x0400
  Compressed =        0b00_01_00_00_00_00_00, // 0x0800
  Offline =           0b00_10_00_00_00_00_00, // 0x1000
  NotContentIndexed = 0b01_00_00_00_00_00_00, // 0x2000
  Encrypted =         0b10_00_00_00_00_00_00  // 0x4000
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值