Bitwise operation between two byte(8 bit hex) getting error in C#
我在第2行和第3行的C代码中出错
1 2 3 | byte Data = 0x00; Data = Data | 0x80; Data = Data >> 1; |
编译器说:无法将类型"int"隐式转换为"byte"。存在显式转换(是否缺少强制转换?)
但我在C中成功地运行了这段代码,将"data"作为无符号字符。
如何在C中执行此操作?
谢谢你的帮助。
为了防止转换为int,可以改用赋值运算符
1 2 3 | byte Data = 0x00; Data |= 0x80; Data >>= 1; // result is 0x40 |
明确地说,就像:
1 2 3 | byte Data = 0x00; Data = (byte)(Data | 0x80); Data = (byte)(Data >> 1); |
或将日期声明为int,并在结束时转换为字节(如果您确信它符合字节)
1 2 3 4 | int Data = 0x00; Data = Data | 0x80; Data = Data >> 1; byte bData = (byte)Data; |