网易Android开发面试题200道及参考答案 (下)
说明原码、反码、补码的概念
- 原码:是一种简单的机器数表示法。对于有符号数,最高位为符号位,0 表示正数,1 表示负数,其余位表示数值的绝对值。比如,对于 8 位二进制数,+5 的原码是 00000101,-5 的原码是 10000101。原码的优点是直观,容易理解,但在进行加减法运算时,需要根据符号位进行不同的处理,比较复杂。
- 反码:正数的反码与原码相同,负数的反码是在其原码的基础上,符号位不变,其余各位取反。例如,+5 的反码是 00000101,-5 的反码是 11111010。反码在计算机中主要用于求补码等运算,本身在实际运算中使用相对较少。
- 补码:正数的补码与原码相同,负数的补码是在其反码的基础上再加 1。以 8 位二进制数为例,+5 的补码是 00000101,-5 的补码是 11111011。补码的出现是为了解决原码在加减法运算中的问题,在计算机中,有符号数的加减法通常都是采用补码进行运算的,这样可以将减法运算转化为加法运算,简化了计算机的运算电路。