二进制
一般来说,二进制的位数是以8的倍数来增长的,比如8位、16位、32位,这是因为计算机处理信息的基本单位是8位2进制数,也称字节。字节是信息的基本单位。在内存和硬盘等设备中,数据是以字节为单位储存的,也是以字节为单位读写的,我们不能以比特为单位来读写。在程序中用十进制或字符来表示的信息,在编译后也会转换成二进制数。程序运行时,在计算机内部也是以二进制来处理这些信息的。对于用二进制数表示的信息,无论它原本是数值、字符还是某种图案,计算机都不做任何区分。至于这些信息应该如何进行处理(运算),必须由负责编写程序的各位来给出具体的指示。要将二进制数转换成十进十进制数,需要将二进制数的各位数字乘以其对应的全位,并将结果相加。移位运算是一种对二进制数的个位数字进行平移的运算,将个位数字向左(高位)移位称为左移。向右(低位)移位称为右移,一次运算可以对数字平移多位。此外,在移位运算中,最高位或最低位多出来的数字(称为溢出)会被直接舍弃。要在二进制中表示负数,一般的方法是将最高位用来表示符号,这时最高位被称为符号位。我们可以约定,符号位为0时表示正数,符号位为1时表示负数。逻辑右移与算术右移的区别?在右移运算中,移动后空出来的高位有用0填充和用1填充两种情况。如果将二进制数想象成图案而不是数值,在右移时。就会用0来填充高位,就像图案在霓虹灯牌上向右滚动的感觉,这种做法称为逻辑右移。而在需要将二进制数作为有符号的数值来运算时,又以用原数符号位的值(0或1)来填充高位这种做法称为算术右移。只有在右移运算中才需要区分逻辑移位和算术移位,在左移运算中,只要将空出来的低位用0填充,就可以同时满足图案移动和乘法运算两种情况的需要了。符号扩展,当我们要将一个8位二进制数在不改变其值的情况下,转换为16位二进制数或32位二进制数时,就需要使用符号扩展,即就是将符号为直接扩展到高位。算术运算指的就是加减乘除四则运算,逻辑运算指的是对二进制数各位的0和1分别进行运算。