我想知道在进行移位时是否需要掩盖一个数字,然后再检索存储在某个字节中的值。以下面的代码为例:short b1 = 1;short b2 = 2;short b0 = (short)((b1 << 8) | b2); //store two values in one variableConsole.WriteLine(b0); //b1 and b2 combinedConsole.WriteLine((b0 & (255 << 8)) >> 8); //gets the value of b1就我而言,进行右移会删除所有小于已移位位数的位。因此,将b0右移8位将删除b2的8位,仅保留b1。Console.WriteLine(b0 >> 8); //this also gets b1!!我想找出,在移至b0的值之前是否需要用255 << 8屏蔽b1?注意:我唯一想到的是在获取值之前进行屏蔽的方法是,是否有其他内容存储在较高的字节上,例如尝试获取使用以下代码的b2值:Console.WriteLine(b0 & 255); //gets the value of b2 最佳答案 我想找出,在移至b1的值之前是否有必要用255 不,没有必要。因此,编译器将省略掩码。有人认为这使代码更易于理解或保护它们免受某些设想的故障情况的影响。这是完全无害的。关于c# - 在检索存储在某个字节中的值之前,是否需要屏蔽数字?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11856348/
10-14 08:29