C语言初阶——6.进制

C语言初阶——6.进制

1. 进制

百度百科:
进制也就是进位计数制,是人为定义的带进位的计数方法,对于任何一种进制—X进制,就表示每一位置上的数运算时都是逢X进一位。 十进制是逢十进一,十六进制是逢十六进一,二进制是逢二进一,以此类推,x进制就是逢x进位。

  • 基数与权

基数是计数值制所用到的数字符号的个数,在基数为R的计数制中包含0 1 2…R-1,共R个数字符号。进位规律是逢R进一,称为R进制位权是指在一种进位计数制表示的数中,用来表示不同数位上数值的大小的一个固定常数,不同的数位有不同的位权,某一个数位的数值等于这一位的数字符号乘上该数的位权。例如:
在这里插入图片描述

2. 转换

十进制转换成R进制用短除法,电脑的计算器通常具有进制转化功能。

3. 运算

NO. 进制 数码 进位条件
1 二进制 01 逢二进一
2 八进制 01234567 逢八进一
3 十进制 0123456789 逢十进一
4 十六进制 0123456789ABCDEF 逢十六进一

ASCII码就是被普遍采用的一个英文字符信息编码方案,它用8位二进制数表示各种字母和符号

  • 计算机为什么使用二进制、八进制、十六进制?
  1. 实现容易:电路中的状态容易表示0和1(开与关、亮与灭、高与低)。
  2. 可靠性高:0和1两个数字传输和处理不易出错。
  3. 运算简单:与十进制数相比,二进制数的运算规则要简单。
  4. 适合逻辑:0和1与逻辑代数中的真和假相吻合。
  5. 易于转换:二进制与十进制数易于互相转换。

由于二进制数据的基数较小,所以二进制数据的书写和阅读不方便。
每个数码正好对应三位二进制数,所以八进制能很好地反映二进制。
由于二进制数在使用中位数太长,不容易记忆,所以又提出了十六进制数。

  • 其他进制(7进制、60进制、24进制、30进制、365进制)

  • 中国古代的十六进制?–半斤八两

4. C语言中的进制

4.1 进制常量表示

C语言不能直接表示二进制常量。八进制数字以0开头,十六进制数字以0x0X开头。
在这里插入图片描述

  • 试一试
int a = 08;
int b = 09;
printf("%o%o",a,b);
4.2 输入输入
4.2.1 进制打印

打印32以内的十进制、八进制、十六进制对应表。

for(int i=0;i<32;++i){
    printf("%d\t%#o\t%#x\n",i,i,i);
}

进制的输出其实与字符输出是一样的,根据占位符的不同输出不同。

char a = 'a';
printf("%c\t%d\t%#o\t%#x\n",a,a,a);
4.2.1 输入进制数据
int n;
scanf("%o",&n);
printf("%d\n",n);
scanf("%x",&n);
printf("%d\n",n);
scanf("%d",&n);
printf("%d\n",n);
scanf("%i",&n);
printf("%d\n",n);
发布了68 篇原创文章 · 获赞 16 · 访问量 8456

猜你喜欢

转载自blog.csdn.net/weixin_41969690/article/details/103733941
今日推荐