您好,我是C#中使用字节的新手。
假设我要比较基于0xxxxxxx和1xxxxxxx格式的字节。我如何获得比较的第一个值,同时又从前面将其删除?
任何帮助将不胜感激。
不确定我是否理解,但是在C#中,要编写binaray数字1000'0000,必须使用十六进制表示法。因此,要检查两个字节的最左(最高有效)位是否匹配,可以执行例如
byte a = ...;
byte b = ...;
if ((a & 0x80) == (b & 0x80))
{
// match
}
else
{
// opposite
}
这使用按位与。要清除最高有效位,可以使用:
byte aModified = (byte)(a & 0x7f);
或者,如果您想重新分配给a
:
a &= 0x7f;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句