C语言学习day05:进制

        今天主要学习了C语言中的进制概念。首先,我了解了二进制、八进制和十六进制在计算机中的应用。然后,学习了如何在C语言中表示和操作不同进制的数值,以及如何进行进制之间的转换。

十进制转二进制:

特意画图来方便理解,有时文字并不如画图解释来的强

十进制转二进制又名:除二反序取余法

C语言学习day05:进制_第1张图片

二进制转十进制:

二进制转十进制的方法又叫权值法

             C语言学习day05:进制_第2张图片

十进制转八进制:

又叫:除八取余反序法

                   C语言学习day05:进制_第3张图片   

八进制转十进制:

C语言学习day05:进制_第4张图片

十进制转十六进制:

C语言学习day05:进制_第5张图片

十六进制转十进制:

C语言学习day05:进制_第6张图片

以下是十进制、二进制、八进制、十六进制的关系表:

 

十进制 二进制 八进制 十六进制
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
16 10000 20 10

转二进制中,有一个方便的方法叫做8421法则

        在8421法则中,每个十进制数位用4位二进制数表示,其中每个二进制位的权值分别为8、4、2、1。这四个权值分别对应于二进制数的最高位、次高位、次低位和最低位。它们的和等于十进制数位的值。
具体来说,8421法则的规则如下:
最高位的权值为8,次高位的权值为4,次低位的权值为2,最低位的权值为1。
每个十进制数位的取值范围是0-9。
对于一个十进制数,将每个十进制数位转换为4位二进制数,其中每个二进制位的值为1或0。
每个二进制位的权值与对应的二进制位的值相乘,然后将它们的和相加,得到对应的十进制数位的值。

        举个例子:十进制52转成二进制为多少?

        C语言学习day05:进制_第7张图片

所以52的二进制为110100;

二进制的理解:

        二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为 2,进位规则是“逢二进一”,借位规则是"借一当二".

当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。

术语 含义
bit(位) 一个二进制代表一位,一个位只能表示0或1两种状态。数据传输是习惯以“位”(bit)为单位。
Byte(字节) 一个字节为8 个二进制,称为 8 位,计算机中存储的最小单位是

C语言如何表示相应进制数:

十进制 以正常数字1-9 开头,如123
八进制 以数字0开头,如0123
十六进制 以0x(字母)开头,如0x123
二进制 C语言不能直接书写二进制数

下面是代码用以理解:

#include 

int main()
{
    int a = 123:    十进制方式城值
    int b = 0123:    八进制方式赋值,以数字0开头
    int c = 0xABC:    十六进制方式赋值
    
    如果在printf中输出一个十进制数
    那么用%d,八进制用%o,十六进制见%x
    
    printf("十进制数:%d\n",a);
    printf("八进制数:%o\n",b);
    printf("十六进制数:%x\n",c);

    return 0;
}

你可能感兴趣的:(C语言学习,c语言,学习,开发语言)