【发布时间】:2023-03-24 14:44:01
【问题描述】:
似乎不会发生任何带负数的按位运算符。即使是简单的事情
Dim b As SByte = CSByte(-128 And &HFF)
但是计算机返回“常量表达式在'SByte'类型中不可表示”为什么这不起作用?为了安全起见,我试图用转换来包围它。 SByte 就像 -128 是 1000 0000 和 &HFF 是 1111 1111。把它们排成一行
1000 0000
1111 1111 And
1000 0000
这仍然是 -128 并且对于 SByte 是合法的。我错过了什么?
【问题讨论】:
-
当您说“不会发生”时,实际上会发生什么? 某些事情必须发生,而不是你所期望的。
-
Greg,它不会编译。这对我来说有点模糊。对不起。
-
但是
-128 And &HFF的实际结果是128,对吧?作为整数? -
如果不能编译,为什么你没有提供编译器错误,而不是让我们猜测问题可能是什么?
标签: vb.net bit-manipulation bitwise-operators