我正在尝试反转32位的无符号整数,想要将零转换为1,将1转为零,但似乎存在错误。
输入:3
输出:4294967292
预期产量:2147483648
public void ButtonClick()
{
gameController.AnswerButtonClick (AnswerData.isCorrect);
if (gameController.IsCorrected())
{
GetComponent<Button>().image.color = Color.green;
Debug.Log("im true");
// StartCoroutine(ReturnButtonColor());
}
else
{
GetComponent<Button>().image.color = Color.red;
// Like this:
gameController.GetCorrectButton().image.color = Color.green;
}
}
答案 0 :(得分:2)
你的期望是错误的。
让我们用十六进制做所有事情:
0x00000003 ^ 0xffffffff = 0xfffffffc
十六进制的正确输出因此为0xfffffffc
,其中4294967292
为(无符号)十进制。
或二进制:
00000000000000000000000000000011 0x00000003
^ 11111111111111111111111111111111 0xffffffff
---------------------------------- ----------
11111111111111111111111111111100 0xfffffffc