C语言学习day05:进制
2023-12-13 16:43:46
????????今天主要学习了C语言中的进制概念。首先,我了解了二进制、八进制和十六进制在计算机中的应用。然后,学习了如何在C语言中表示和操作不同进制的数值,以及如何进行进制之间的转换。
十进制转二进制:
特意画图来方便理解,有时文字并不如画图解释来的强
十进制转二进制又名:除二反序取余法
二进制转十进制:
二进制转十进制的方法又叫权值法
? ? ? ? ? ? ?
十进制转八进制:
又叫:除八取余反序法
? ? ? ? ? ? ? ? ? ?? ?
八进制转十进制:
十进制转十六进制:
十六进制转十进制:
以下是十进制、二进制、八进制、十六进制的关系表:
?
十进制 | 二进制 | 八进制 | 十六进制 |
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转成二进制为多少?
? ? ? ??
所以52的二进制为110100;
二进制的理解:
????????二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为 2,进位规则是“逢二进一”,借位规则是"借一当二".
当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。
术语 | 含义 |
bit(位) | 一个二进制代表一位,一个位只能表示0或1两种状态。数据传输是习惯以“位”(bit)为单位。 |
Byte(字节) | 一个字节为8 个二进制,称为 8 位,计算机中存储的最小单位是 |
C语言如何表示相应进制数:
十进制 | 以正常数字1-9 开头,如123 |
八进制 | 以数字0开头,如0123 |
十六进制 | 以0x(字母)开头,如0x123 |
二进制 | C语言不能直接书写二进制数 |
下面是代码用以理解:
#include <stdio.h>
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;
}
文章来源:https://blog.csdn.net/q13407441836/article/details/134903438
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!