Fre*_*dou 4 vb.net bit-manipulation
这很好用:
Public Const test As ULong = 1 << 30
Run Code Online (Sandbox Code Playgroud)
这不能很好地工作:
Public Const test As ULong = 1 << 31
Run Code Online (Sandbox Code Playgroud)
它会创建此错误:
常量表达式在'ULong'类型中无法表示
我如何使其工作?
这确实有效:
Public Const test As Long = 1 << 31
Run Code Online (Sandbox Code Playgroud)
但我必须使用ULong.
您不能1 << 31使用Long数据类型进行切换,因此会出现此错误.
但是,这是因为1,作为整数文字,被视为Int32,这是默认的整数文字.
您应该通过将其定义为:
Public Const test As ULong = 1UL << 30
Public Const test2 As ULong = 1UL << 31
Run Code Online (Sandbox Code Playgroud)
UL标志表示使1为无符号长整数. 详情请参阅类型字符.
| 归档时间: |
|
| 查看次数: |
839 次 |
| 最近记录: |