【发布时间】:2018-06-16 09:16:00
【问题描述】:
我有一个整数 u=101057541。
二进制,这等于:00000110 00000110 00000100 00000101
现在,我将每个字节视为一个单独的小数(在本例中为 6、6、4、5)。 我想从第一个字节中减去 -1,得到 6-1=5。 我尝试这样做:
int West = u | (((u>>24) - 1) << 24);
但是,结果与我 ADD 1 到该字节时的结果相同。有人可以解释为什么并告诉我如何从这个字节中减去 -1 吗?
更新: 因此,我想要的结果是以下二进制数:
00000101 00000110 00000100 00000101
【问题讨论】:
-
你减去了-1,好吧。
-
如果你有 u = 1;它将是
00000000 00000000 00000000 00000001=> 0 0 0 1,你想在这里做什么 0-1 或 1-1 ? -
我想知道谁在 SO 上为这样的问题投票。
-
感谢大家的快速回复。我现在明白我做错了什么并使用遮罩来获得正确的结果。