C语言进制
C语言进制
1、计算机运行的顺序
第一步:输入设备-->主存储器 控制器判断贮存中是不是有数据 有数据等待
第二步:主存储器-->运算器 控制器判断运算器是不是在进行运算 运算等待
第三步:运算器-->主存储器 控制器判断贮存中是不是有数据 有数据等待
第四步:主存储器-->输出设备 控制器判断输出设备是不是在忙 有的话等待
CPU:运算器、控制器
? 控制器:不参与计算机的计算过程,但是在整个过程中起支配作用。皇帝。
? 运算器:运算单元:做各种运算。
寄存器:用来保存运算过程中的中间变量。
寄存器:
通用寄存器、段地址寄存器、指示寄存器
1024程序员的节日:位(bit)和字节(Byte)
位:一个二进制位
字节:8个二进制
1B=8bit
1 KB = 1024 B = 2的10次方B
1 MB = 1024 KB = 2的20次方B
1 GB = 1024 MB = 2的30次方B
1 TB = 1024 GB = 2的40次方B
总结:5大模块 4个步骤 CPU 位和字节
2、进制
十进制:0 1 2 3 4 5 6 7 8 9由这些数字组成的数就是十进制
二进制:0 1 由这些数字组成的数就是二进制
八进制:0 1 2 3 4 5 6 7由这些数字组成的数就是八进制
十六进制:0 1 2 3 4 5 6 7 8 9 A B C D E F由这些数字组成的数就是十六进制“半斤八两”17两=1斤1两
十进制和二进制加法:
十进制运算:
0+0=0 0-0=0 0*0=0 0/1=0
0+1=1 0-1=-1 0*1=0 1/1=1
1+0=1 1-0=1 1*0=0
1+1=2 1-1=0 1*1=1
二进制:
0+0=0 0-0=0 0*0=0 0÷1=0,
0+1=1 0-1=1 0*1=0 1÷1=1
1+0=1 1-0=1 1*0=0
1+1=10 1-1=0 1*1=1
各个进制之间的转换关系
二进制 | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
八进制 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
十进制 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
十六进制 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
2.1 十进制转二进制:
辗转相除,逆向排序:(就是每回除二,取余数,结果倒排)
2.2 二进制转十进制:(位权相加)
1、先算出2进制数的位数
2、每一个位上面的数值(0,1)乘上2的(位-1)次方。 (位-1)
3、求和。
? 注(少年):2的0次方是1。
二进制:10------------2(十进制)
? 100----------4
? 1000--------8
? 10000------16
? 100000----32
? 1000000-----64
? 10000000------128
? 100000000------256
? 1000000000 ----512
520 = 512+8 --->1000000000 1000 ---->1000001000
十进制和八进制、十进制和十六进制。
十进制转八进制:辗转相除,逆向排序 (除8)
十进制转十六进制:辗转相除,逆向排序 (除16)
八进制转十进制:
十六进制转十进制:
二进制转十进制:
D 要求得的十进制
X 位上面的数值
n 从右往左的位
B 要转换的(二 八 十六)进制
2.3 二进制<----->八进制
? 3位变1位(从右往左)
? 1位变3位(如果转化出来不足3位,在前面补足3位)
2.4 二进制<----->十六进制
? 4位变1位(从右往左)
? 1位变4位(如果转化出来不足4位,在前面补足4位)
总结:
1、十进制转化为其他进制(辗转相除)
2、其他进制转化为十进制(位权相加)
3、二进制和8进制(3位1位)
4、二进制和十六进制(4位1位)
5、八进制和十六进制(间接转)
?