提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
提示:以下是本篇文章正文内容,下面案例可供参考
进制基础知识
什么是进制
- 进制也就是进位计数制,是人为定义的带进位的计数方法。
- 而在计算机中定义的进制有二进制、八进制、十进制、十六进制。
二进制
二进制是基数为2,逢2进1。在二进制中,使用0和1两种符号。在算术运算里会发生进位、借位。
使用二进制时,必须以0b或0B开头, 不区分大小写。
表示方式:
int binary1 = 0b101; // 010的二进制表示
int binary2 = 0b010; // 101的二进制表示
二进制算数运算
加法:算术运算: 0+0=0、0+1=1 、1+0=1 、1+1=10(向高位进1)
减法:算术运算: 0-0=0、0-1=1(向高位借1)、1-0=1、1-1=0
#include <stdio.h>
int main()
{
// 二进制加法运算 010 + 101
int binary1 = 0b101; // 010的二进制表示
int binary2 = 0b010; // 101的二进制表示
int result1 = binary1 + binary2; // 执行加法运算
int result2 = binary1 - binary2; // 执行加法运算
// 输出结果 : 以二进制加法的结果(十进制表示)
printf("二进制加法结果为:%d\n", result1); //结果为7转换为111;
printf("二进制加法结果为:%d\n", result2); //结果为7转换为111;
return 0;
}
八进制
八进制是一种基数为8的记数系统,逢8进1。八进制采用0至7这八个数字来表示数值,所以在八进制中不会出现8或8以上的数。在八进制数中,每一位数字的权值为8的n次方,n从0开始。
使用时必须以0开头,注意是数字 0,不是字母 O;
#include <stdio.h>
int main() {
int binary = 0100; // 100的八进制表示
printf("八进制数0101转换为十进制数为:%d\n", binary);// 八进制数100转换为十进制数64
return 0;
}
二进制与八进制关系表
二进制 | 八进制 |
---|---|
000 | 0 |
001 | 1 |
010 | 2 |
011 | 3 |
100 | 4 |
101 | 5 |
110 | 6 |
111 | 7 |
二进制转换八进制
二进制从后照着二进制与八进制关系表对照,不足是前面补0;
例如:
二进制数为:1111101010 转换八进制数为:1752
八进制转二进制
八进制数为:165 转换二进制数为:1110101
也是同理。最前面的"0"可以抹去
八进制与十六进制之间的转换
这两者之间的转换可以借助十进制或者二进制完成,可以先将八进制转换成十进制或二进制,再转换成十六进制。通过间接转换来实现。
十进制
计算机中的十进制是一种计数系统,逢10进1。它使用0到9这十个数字进行计数。十进制是我们日常生活中最常用的计数方式,也是计算机内部处理数据的主要方式之一。
在计算机中,所有的数据都是以二进制的形式存储和处理的。但是,为了方便人类的阅读和交流,通常会将二进制数转换成十进制数进行显示或输出。
二进制与十进制关系表
二进制 | 十进制 |
---|---|
0000 | 0 |
0001 | 1 |
0010 | 2 |
0011 | 3 |
0100 | 4 |
0101 | 5 |
0110 | 6 |
0111 | 7 |
1000 | 8 |
1001 | 9 |
二进制转换十进制
将二进制数从右至左依次写出,每个位上的数乘以对应的权值,然后将所有乘积相加即可得到十进制数。
例如,二进制数1011转换为十进制数为:
12^3+02^2+12^1+12^0=8+0+2+1=11
画图案例:二进制为101101 转换十进制为:109
十进制转换二进制
十进制转二进制采用的是除二取余。余不为"0",即为1,余为"0",即为0,向下往上取数。
十进制数为:168 转换 二进制数为:10101000
例如:
十进制转换八进制
十进制转八进制采用的是除八取余。余为"0",即为0,余不为"0",即为该余数数值,向下往上取数。
十进制数为:168 转换 十进制数为:250
十进制转换十六进制
十进制转八进制采用的是除十六取余。余为"0",即为0,余不为"0",即为该余数数值,向下往上取数。
十进制数为:168 转换 十进制数为:A8
十六进制
计算机中的十六进制是一种计数系统,是一种逢16进1的进位制。通常用数字0到9和字母(A至F)或(a至f)表示,其中A~F表示十进制的10~15。在计算机科学中,十六进制常用于表示二进制数、字节等信息,因为它可以更简洁地表示数据。
二进制与十六进制关系表
二进制 | 十进制 | 十六进制 |
---|---|---|
0000 | 0 | 0 |
0001 | 1 | 1 |
0010 | 2 | 2 |
0011 | 3 | 3 |
0100 | 4 | 4 |
0101 | 5 | 5 |
0110 | 6 | 6 |
0111 | 7 | 7 |
1000 | 8 | 8 |
1001 | 9 | 9 |
1010 | 10 | A |
1011 | 11 | B |
1100 | 12 | C |
1101 | 13 | D |
1110 | 14 | E |
1111 | 15 | F |
二进制转换十六进制
从后向前四个为一组,二进制与十六进制表,对照
十六进制转换二进制
十六进制数为:27B 转换二进制数为:1001111011
也是同理。最前面的"0"可以抹去。
十六进制与八进制之间的转换
这两者之间的转换可以借助十进制或者二进制完成,可以先将八进制转换成十进制或二进制,再转换成十六进制。通过间接转换来实现。
总结
对计算机内的基本计数,二进制、八进制、十进制、十六进制、以及进制之间的相互转换的学习。