在过去3个小时里,我一直在努力解决这个问题,但我并没有做对。 我有highByte / lowByte值,我需要将它组合成一个名为temp的签名int(我认为)。我知道输入和所需的输出,但此时我认为这可能完全不合适。
int temp = ((highByte) & 0xFF) << 8 | (lowByte) & 0xFF;
我正在使用此功能,但它没有返回所需的输出。
这次转换肯定有问题,或者我的逻辑已应用于此问题。期望的结果是:
如果highByte / lowByte字节的值都为255,则输出应为 是-1。
答案 0 :(得分:3)
int
是4字节整数值(系统名称Int32)。如果您希望将highByte的高位字节视为符号,则将表达式的右侧部分强制转换为short
(Int16)
int temp = (short)(((highByte) & 0xFF) << 8 | (lowByte) & 0xFF);