1、计算机中的进制
1.1进制的三要素
进制 | 数码 | 基数 | 位权 |
十进制 | 0 1 2 3 4 5 6 7 8 9 | 10 | .......10^2 10^1 10^0 10^-1 10^-2 10^-3..... |
二进制 | 0 1 | 2 | .......2^2 2^1 2^0 2^-1 2^-2 2^-3..... |
八进制 | 0 1 2 3 4 5 6 7 | 8 | .......8^2 8^1 8^0 8^-1 8^-2 8^-3..... |
十六进制 | 0 1 2 3 4 5 6 7 8 9 a b c d e f | 16 | .......16^2 16^1 16^0 16^-1 16^-2 16^-3..... |
1.2 不同进制数据的表示
十进制:无需任何修饰,默认是10进制 例如:100
二进制:在数字前面加修饰符0b 例如:0b100
八进制:在数字前面加修饰符0 例如:0100
十六进制:在数字前面加0x修饰 例如:0x100
1.3 不同进制数据之间转化
1. N 进制转十进制
方法:位权展开相加法
例如 :1010 转为 十进制为 10
2. 十进制转N进制
除N取余,将余数逆序排列
3. M进制转N进制
① 二进制与八进制转换
( 从右向左,高位补0) 二进制 转 八进制 三合一
八进制 转 二进制 一拆三
例如:
0b110110110 = 0b110 110 110 = 0o666 (2^2+2^1 =4+2=6)
0o567 = 0b101 110 111 (5=2^2+2^0 6=……)
② 二进制与十六进制转换
( 从右向左,高位补0) 二进制 转 十六进制 四合一
十六进制 转 二进制 一拆四
例如:
0b1 1011 0110 = 0x1b6
0xabc = 0b1010 1011 1100
③ 八进制转十六进制
先将8进制 转换为 2进制 再转换为 16进制
2. 二进制的原码 反码 补码
数据在存储的时候,有正数也有负数,就涉及到原码、反码、补码,
计算机中的数据计算都是以【补码】形式参与的。
原码:给人看的,直接转换得到的
反码:用来做原码与补码之间转换的中间者
补码:给计算机看的
正数:原码 = 反码 = 补码 = 自身二进制
负数:
原码:最高位代表符号位【0正1负】,其他位是自身二进制
反码:最高位代表符号位【0正1负】,其他位对原码按位取反【0变1 1变0】
补码:最高位代表符号位【0正1负】,其他位对反码加1
3.计算机中二进制的计算
1> 计算规则
加法:逢二进一
减法:借一当二
1. 题目描述: 写出下面数值的原码、反码、补码(要求采用16位来表示)1) -127的原码 1000 0000 0111 11112) -127的反码 1111 1111 1000 0000 3) -127的补码 1111 1111 1000 0001
2. 按照计算机的加法器,计算3-5,演示过程题目分析,按照计算机加法器算,所以先将3-5转换成3 + (-5)又因为计算机中数值计算都是以【补码】形式参与的,所以计算3和-5的补码如下所示:【以8位二进制为例】3 0000 0011 =》 0000 0011 =》 0000 0011-5 1000 0101 =》 1111 1010 =》 1111 1011补码相加,进行计算0000 0011 【补码】+ 1111 1011 【补码】——————————————1111 1110 【补码】1111 1101 【反码】1000 0010 【原码】 -2