VB.NET中如何通过位运算在ULong类型上应用大数值常量?
- 内容介绍
- 文章标签
- 相关推荐
本文共计304个文字,预计阅读时间需要2分钟。
这个错误信息表明,你尝试在Visual Basic中声明一个常量`test`,并将其赋值为`1 + 30`,但是这个值超出了`ULong`类型能表示的范围。`ULong`类型通常表示无符号长整型,其范围是从0到2^64-1(即0到18446744073709551615)。
以下是修改后的代码,确保常量的值在`ULong`类型的范围内:
vbPublic Const test As ULong=1 + 29
这样修改后,`test`的值将是30,它位于`ULong`类型的有效范围内。
这很好用:Public Const test As ULong = 1 << 30
这不能很好地工作:
Public Const test As ULong = 1 << 31
它会创建此错误:
Constant expression not representable in type ‘ULong’
我如何使其工作?
这确实有效:
Public Const test As Long = 1 << 31
但我必须使用ULong.
请尝试以下方法:Public Const test As ULong = 1UL << 31
您需要明确告诉编译器您正在对ULong进行操作.
C#等效工作:
public const ulong test = 1UL << 31;
本文共计304个文字,预计阅读时间需要2分钟。
这个错误信息表明,你尝试在Visual Basic中声明一个常量`test`,并将其赋值为`1 + 30`,但是这个值超出了`ULong`类型能表示的范围。`ULong`类型通常表示无符号长整型,其范围是从0到2^64-1(即0到18446744073709551615)。
以下是修改后的代码,确保常量的值在`ULong`类型的范围内:
vbPublic Const test As ULong=1 + 29
这样修改后,`test`的值将是30,它位于`ULong`类型的有效范围内。
这很好用:Public Const test As ULong = 1 << 30
这不能很好地工作:
Public Const test As ULong = 1 << 31
它会创建此错误:
Constant expression not representable in type ‘ULong’
我如何使其工作?
这确实有效:
Public Const test As Long = 1 << 31
但我必须使用ULong.
请尝试以下方法:Public Const test As ULong = 1UL << 31
您需要明确告诉编译器您正在对ULong进行操作.
C#等效工作:
public const ulong test = 1UL << 31;

