二进制数是一种基数为2的数制系统,它只有两个数码0和1。在计算机中,所有的信息,包括指令和数据,都是以二进制的形式存储和处理的。补数主要用于实现计算机中的减法运算,因为计算机内部通常只执行加法运算。对于一个正数,其补数就是其本身;对于一个负数,其补数是该负数绝对值的二进制表示取反后加1。移位运算可以看作是乘除运算的一种快速实现方式。左移一位相当于乘以2,右移一位相当于除以2。乘除运算涉及乘数或除数的每一位,可能涉及多步计算。移位运算直接操作二进制数的位,通常只需要一步就能完成。移位运算比乘除运算更快,但只适用于乘除数为2的幂的情况。
逻辑右移:将二进制数向右移动,左侧空出的位用0填充。这通常用于无符号整数的右移。
算数右移:将二进制数向右移动,左侧空出的位用符号位(最高位)填充。这通常用于有符号整数的右移。对于正数,逻辑右移和算数右移的结果是一样的,因为左侧填充的都是0。但对于负数,两者的结果不同,因为算数右移会保持数的符号不变。