简介
二进制是使用 0 和 1 表示的数,相对于10进制以10为基数,逢10进1,借1当10,二进制则以2为基数,逢2进1,借1当2,在计算机中使用的都是二进制,在计算机内部使用开关来存储数据,开表示1,关表示0,每一个数字称为一位 或一比特(bit, binary digit),位是计算机硬件操作数据的基本单位,8位二进制是一个字节 (Byte),字节是计算操作系统操作的基本单位
运算
加法,逢2进1
0 + 0 = 0
1 + 0 = 1
1 + 1 = 10
减法,借1当2
0 - 0 = 0
1 - 0 = 1
1 - 1 = 0
0 - 1 = 1
乘法,与十进制一样
0 * 0 = 0
1 * 0 = 0
1 * 1 = 1
除法,与十进制一样
0 / 1 = 0
1 / 1 = 1
进制转换
二进制转10进制
方法:“按权展开求和”
位权:某进制计数制中各位数字符号所表示的数值表示该数字符号值乘以一个与数字符号有关的常数,该常数称为 “位权 ”
例:
1110 = 1*2^3 + 1*2^2 + 1*2^1 + 0*2^0 = 8 + 0 + 2 + 0 = 14
10110110 = 1*2^7 + 0*2^6 + 1*2^5 + 1*2^4 + 0*2^3 + 1*2^2 +1*2^1 + 0*2^0 = 128 + 0 + 32 + 16 + 0 + 4 + 2 + 0 = 182
10进制转二进制
方法:“除以2取余,逆序排列”
例:14
14/2 = 7?0 等7余0
7/2 = 3?1 等3余1
3/2 = 1?1 等1余1
1 余下的1
逆序排列 1110
二进制转16进制
方法:二进制数转换成十六进制数时,只要从小数点位置开始,向左或向右每四位二进制划分一组(不足四位数可补0),然后写出每一组二进制数所对应的十六进制数码
十六进制数字与二进制数字的对应关系如下:
二进制 | 16进制 | 二进制 | 16进制 |
---|---|---|---|
0000 -> 0 | 0100 -> 4 | 1000 -> 8 | 1100 -> C |
0001 -> 1 | 0101 -> 5 | 1001 -> 9 | 1101 -> D |
0010 -> 2 | 0110 -> 6 | 1010 -> A | 1110 -> E |
0011 -> 3 | 0111 -> 7 | 1011 -> B | 1111 -> F |
这个转换表可以先把二进制转为10进制,再把10进制转为16进制计算得到
例:
1111 = 1*2^3 + 1*2^2 + 1*2^1 + 1 *2^0 = 8 + 4 + 2 + 1 = 15, 十进制15对应16进制 F
二进制在计算机内的存储
数据在计算机底层是以二进制来存储的。而且就是按照数据的补码来存储的。(数据分为:原码、反码、补码)
对于正数来讲:原码、反码、补码都是相同的。对于负数来讲:其补码可以看做是其相反数的各个位去反后,再+1得到
最高位表示正负 0 表示 正数,1表示负数,后面的具体数
使用补码存储的原因在于运算的时候可以把符号当成数值来处理,减法可以按加法来处理,CPU 内部基础的运算是加法,统一成一种运行硬件设计起来简单
网友评论