常用进制及其转化

在学习C语言、数字电路、微机原理、FPGA等等众多课程时,首先讲述的都是进制及其转化,学习了这么多遍,我们真的理解进制吗

什么是进位计数制(进制)

进制,全名叫做进位计数制,就是同一个量不同计数方式

一组数字,从右向左位置依次升高,同样的数字,所在位置不同,表示的大小不同,这个大小就取决于进制

通俗一点来说就是:进制决定了逢几进一

常用进制

十进制

  • 基数:0、1、2、3、4、5、6、7、8、9

人们生活中使用的是十进制,历史悠久,我还真说不上具体的原因~

二进制

  • 基数:0、1

二进制只有0和1两个状态,可以用有/无表示(磁性),也可以用高/低(电压)来表示,在数字电路的世界中广泛使用,进而在计算机的世界中也被广泛使用。

十六进制

  • 基数:0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f

在使用计算机时,为了编码和理解的方便,人们在十进制和二进制之间建立了十六进制,即:用一个十六进制数表示4个二进制数。

八进制

  • 基数:0、1、2、3、4、5、6、7

八进制基本上没用过,不知道怎么就发明了这种东西,了解一下就好啦~

不同进制在程序中的表示

汇编语言

  • 十进制: 后缀D(eg. 1234D)
  • 二进制: 后缀B(eg. 1011B)
  • 十六进制: 后缀H(eg. 82CEH)
  • 八进制: 后缀O(eg. 7162O)

高级语言

  • 十进制:直接书写
  • 二进制:不可以写,用十六进制代替
  • 十六进制:前缀0X或者0x
  • 八进制:前缀0(是零,不是大写字母O)

常用进制之间的转化(整数)

十进制 二进制 十六进制
0 0000 0
1 0001 1
2 0010 2
3 0011 3
4 0100 4
5 0101 5
6 0110 6
7 0111 7
8 1000 8
9 1001 9
10 1010 a/A
11 1011 b/B
12 1100 c/C
13 1101 d/D
14 1110 e/E
15 1111 f/F

n进制 -> 十进制

  • 无符号:该位置的基数 X 该位置的权重,然后所有位置的和相加。
  • 有符号:最高位是符号位,其余位按照上面的规则运算。

常用进制及其转化_第1张图片

十进制 -> n进制

  • 除n取余,直至商零,余数倒序排列

常用进制及其转化_第2张图片

常用进制之间的转化(浮点数)

十进制小数 -> 二进制浮点数

  • 整数部分:按照十进制整数的方法转化(除n取余,直至商零,余数倒序排列
  • 小数部分:乘2取整,直至小数部分为零,取出的整数正序排列(如不为零,则按要求保留足够位数的小数,最后一位0舍1入)

常用进制及其转化_第3张图片

二进制浮点数 -> 十进制小数

  • 所有位按权重相加。

常用进制及其转化_第4张图片

你可能感兴趣的:(C语言集锦,进制转化)