知道补码求原码
今天看到⼀个由反码求原码的过程,⼀直很困惑。
先了解原码,反码,补码的基本概念
1.正数三者相同。
2.负数如下。
原码:正常⼆进制32位换算,⽐如(-1)的原码 10000000 000000000 00000000 00000001,其中负数第⼀位为1,整数为0,理所当然1的原码为00000000 000000000 00000000 00000001。
反码:忽视第⼀位1/0的符号位,其他为按位取反,就是 是0换成1,是1换成0。仍以(-1)举例,为11111111 11111111 11111111 11111110。
补码:为反码+1:11111111 11111111 11111111 11111111(-1的)。
看过概念,想当然是原码则是补码取反减⼀。
11111111 11111111 11111111 11111111取反是 10000000 00000000 00000000 00000000,
⽽实际原码为10000000 000000000 00000000 00000001。
负75的补码怎么求
因此,切实可靠的⽅法就是补码取反+1。
果然,你以为就是你以为吗?天真,不禁感叹之前的设计者如何想出来的,⼤佬。