进制
概念
进制也就是进位计数制,是人为定义的带进位的计数方法。
常用的进制有哪些?
二进制,四进制,十进制,16进制。
进制的用途
二进制:计算机存储数据以及处理的时使用的就是二进制。使用的数字只有0,1两种。
十进制:生活中用的最多的一种进制计数法。使用的数字有0,1,2,3,4,5,6,7,8,9共10种。
十六进制:计算机内存地址的编号使用的就是十六进制。使用的数字有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16种。
进制的转换
进制转换 | 示例 | 方法 |
---|---|---|
十进制>N进制 | 十进制>二进制 十进制>十六进制 | 连除倒取余 |
N进制>十进制 | 二进制>十进制 十六进制>十进制 | 按权求和 |
过程解析
字节与位的关系
位的概念
位是计算机内部数据储存的最小单位。
字节的概念
字节是计算机中数据处理的基本单位。计算机中以字节为单位存储和解释信息,规定一个字节由八个二进制位构成,即1个字节等于8个比特(1Byte=8bit).
计算机中数的表示
机器数
一个数在计算机中的二进制表示形式,叫做这个数的机器数。机器数是带符号的,在计算机中用一个数的最高位存放符号,正数为0,负数为1,比如,十进制中的+3,假设计算机字长为8位,转换成二进制就是0000 0011,如果是-3,就是1000 0011。那么,这里0000 0011和1000 0011就是机器数。
真值
因为第一位为符号位,所以机器数的形式值就不等于真正的数值,例如上面的有符号数1000 0011,其最高位1代表负,其真正数值是-3,而不是形式值131(1000 0011转换成10进制等于131),所以为了区别起见,将带符号的机器数对应的真正数值称为机器数的真值。例如:0000 0001的真值=+000 0001=+1,1000 0001的真值=-000 0001=-1。
原码
原码就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值,比如如果是8位二进制,[+1]原码=0000 0001。[-1]原码=1000 0001。因为第一位是符号位,所以8位二进制的取值范围就是:[1111 1111,0111 1111]即[-127,127],原码是人脑最容易理解和计算的表示方式。
反码
反码的表示方法是:正数的反码是其本身,负数的反码是在其原码的基础上,符号位不变,其余各个位取反,[+1]=[0000 0001]原= [0000 0001]反,[-1]=[1000 0001]原=[1111 1110]反。可见如果一个反码表示的是负数,人脑无法直观的看出来它的数值,通常要将其转换成原码再计算。
补码
补码是:是一种用二进制表示有号数的方法。表示方法:如果是正数,则表示方法和原码一样;如果是负数,则将数字的反码加上1(相当于将原码数值位取反然后在最低位加1)。
位运算符
位运算符 | 符号 | 计算规则 | 示例 |
---|---|---|---|
与 | & | 有0则为0,同1则为1 | 3 & 2 = 2 |
或 | 丨 | 有1则为1,同0则为0 | 3 |
非 | ~ | 按位取反 | ~3 = -4 |
异或 | ^ | 相同为0,相异为1 | 3 ^ 2 = 1 |
左移 | << | 整体往左高位移动,相当于乘2 | 2 << 1 = 4 |
右移 | >> | 整体往右低位移动,相当于除2 | 2 >> 1 = 1 |