做而论道_CS: 计算机中,只有二进制数。 进行算术运算时,无论二进制、十进制, 它们都是数,并不是什么什么码。 所谓的补码,也是数。 补码的来历,并非是 “符号位原码反码取反加一 ... ”。 补码的来历,只是因为【舍弃了进位】。 你看十进制吧,两位数,范围是:0 ~ 99。 这个最大值 +99,就可以当成-1 来使用。 如:27 + 99 = (一百) 26 27 - 1 = 26 只要你舍弃了进位,这两种算法,就是相同的。 舍弃了进位,即有: 正数,就能当负数; 加法,就相当于减法运算。 在计算机中,舍弃进位,就可以省掉减法器了。 -------------------- 八位机,其计算的范围是: 0000 0000 ~ 1111 1111。 相当于十进制 0 ~ 255。 出现了进位,就是 2^8 = 256。 如果你忽略了进位,就是减去了 256。 那么,+255,就可以当成-1 来使用。 由此可知,无论什么进制,只要舍弃了进位: 正数,就能当负数; 加法,就相当于减法运算。 这就是 “补码” 的来历。 -------------------- 因为,255 (1111 1111),可当做-1; 同理,254 (1111 1110),就可当做-2; 继续,253 (1111 1101),也可当做-3; 。。。 这些个正数,就是计算机专家所说的:补码。 你一定能看出关系式: 负数的补码=正数=256 + 该负数。 例如:-15 的八位补码是什么? 解:256 - 15 = 241 = 1111 0001 (二进制)。 这不就求出来了吗? 哪里还需要 “符号位原码反码取反加一”! -------------------- 零和正数的补码,又是什么呢? 也可以使用同一个关系式: 正数的补码 = 256 + 该正数。 加上 256,就会出现进位,舍弃之后,就是: 正数的补码 = 该正数。 此时,就证明了: 【零和正数的补码,就是其本身】。 例如:+15 的补码是什么? 解:。。。 你自己一定会算的。
IDEA 中没有创建spring项目的选项【记录】
Java 原码反码补码