【发布时间】:2016-06-17 12:25:07
【问题描述】:
为什么 C# 的按位 NOT 运算符返回 (the_number*-1)-1?
byte a = 1;
Console.WriteLine(~a); //equals -2
byte b = 9;
Console.WriteLine(~b); //equals -10
// Shouldn't a=0 and b=6?
我将如何在 C# 中执行此操作?
9 = 0b1001 -> NOT
= 0b0110 = 6
【问题讨论】:
-
你知道
byte有8位,因此9的二进制表示是0b00001001? -
-2 实际上没问题,因为 int 使用 ...好吧,@knittl 只是在下面说。
-
这不是特定于 C# - CPU 本身就是这样工作的
标签: c# bitwise-operators bit