黑马程序员----C 语言学习笔记之计算机中的进制

来源:互联网 发布:万德数据外汇数据 编辑:程序博客网 时间:2024/06/06 05:48
------Java培训、Android培训、iOS培训、.Net培训--------
计算机中的进制


1.计算机中的进制
是一种计数的方式,数值的表示形式


2.常见的进制
二进制,八进制,十进制,十六进制


3. 进制 数字 进位方法
3.1 二进制 0,1   逢二进一
3.2 十进制 0 ~ 9  逢十进一
3.3 八进制 0 ~ 7  逢八进一
书写形式:在前面加个0,如045
3.4 十六进制 0 ~ 9 ,A ~ F 逢十六进一
书写形式:在前面加个0x或0X,如0x45


注意,十六进制实16进1.但只有0~9这十个数字,所以用A,B,C, D, E, F这六个字母冯别来表示10~15。


3.5 进制转换表


4.不同进制互相转换
4.1 例子
    //定义一个十进制数,显示成八进制和十六进制    int a = 13;    printf("a8 = %o\n", a);    printf("a16 = %x\n",a);    //定义一个二进制,打印成十进制    int b = 0b00000000000000000000000000001101;    printf("b = %d\n",b);    //定义一个八进制,打印成十进制    int c = 015;    printf("c = %d\n",c);    //定义一个十六进制,打印成十进制    int d = 0xD;    printf("d = %d",d);




4.2 进制转换的要素

a.数位 数位指 数码在一个数中所处的位置
b.基数 数值是N进制,那么基数就是N
c.位权 基数^数位
例如:
二进制数 1000, 数码1的数位是3,基数是2,所以位权是2^3 = 8


4.3 C语言中不提供把其他进制直接转换成二进制的方法,需要自己写代码转换


4.4 十进制转换成二进制:除2取余法,然后得到余数的序列,再倒序
例如:
十进制数转换成二进制数,计算过程:8除以2,余数0,商为4;4除以2,余数0,商为2;2除以2,余数0,商为1;1除以2,余数1,商为0. 结果按余数倒序排列为:1000


4.5 二进制转换成十进制:按位加权法
例如:
1000 转换成十进制计算过程为 1 * 2^3 + 0 * 2^2 + 0 * 2^1 + 0 * 2^0 = 8


4.6 二进制转换成十六进制
整数部分从右向左,四位并一位,不足四位,不足位补领,小数部分从左向右四位并一位。


例如:二进制数110 1000 1101 1110 转换成十六进制
1110---> 14 ---> E
1101---> 13 ---> D
1000---> 8  ---->8
110 不够四位补齐位0110 ---> 6--->6
结果:68DE


4.7 十六进制转换成二进制
把每一位拆成四位成为二进制
例如:十六进制数:8A
8 ---> 1000
A ---> 1010
因此十六进制数8A转换成二进制数为1000 1010






0 0