c语言中的二进制、八进制、十进制、十六进制他们之间的转换方式什么怎样的?
2进制,用两个阿拉伯数字:01
8进制,用八个阿拉伯数字:01234567
10进制,用十个阿拉伯数字:09
16进制就是逢161,但我们只有0~9这十个数字,所以我们用ABCDEF这五个字母来分别表示101112131415。字母不区分大小写。
以下简介各种进制之间的转换方法:
一、二进制转换十进制
例:二进制 “1101100”
1101100 ←二进制数
6543210 ←排位方法
例如二进制换算十进制的算法:
1*26 + 1*25 + 0*24 + 1*23 + 1* 22 + 0*21 + 0*20
↑ ↑
说明:2代表进制,后面的数是次方(从右往左数,以0开始)
=64+32+0+8+4+0+0
=108
二、二进制换算八进制
例:二进制的“10110111011”
换八进制时,从右到左,三位一组,不够补0,即成了:
010 110 111 011
然后每组中的3个数分别对应421的状态,然后将为状态为1的相加,如:
010 = 2
110 = 4+2 = 6
111 = 4+2+1 = 7
011 = 2+1 = 3
结果为:2673
三、二进制转换十六进制
十六进制换二进制的方法也类似,只要每组4位,分别对应8421就行了,如分解为:
0101 1011 1011
运算为:
0101 = 4+1 = 5
1011 = 8+2+1 = 11(由于10A,所以11B
1011 = 8+2+1 = 11(由于10A,所以11B
结果为:5BB
四、二进制数转换为十进制数
二进制数第0位的权值是20次方,第1位的权值是21次方……
所以,设有一个二进制数:0110 0100,转换为10进制为:
计算: 0 * 20 + 0 * 21 + 1 * 22 + 0 * 23 + 0 * 24 + 1 * 25 + 1 * 26 + 0 * 27 = 100
五、八进制数转换为十进制数
八进制就是逢81
八进制数采用 07这八数来表达一个数。
八进制数第0位的权值为80次方,第1位权值为81次方,第2位权值为82次方……
所以,设有一个八进制数:1507,转换为十进制为:
计算: 7 * 80 + 0 * 81 + 5 * 82 + 1 * 83 = 839
结果是,八进制数 1507 转换成十进制数为 839
六、十六进制转换十进制
例:2AF5换算成10进制
直接计算就是: 5 * 160 + F * 161 + A * 162 + 2 * 163 = 10997
(别忘了,在上面的计算中,A表示10,而F表示15)
现在可以看出,所有进制换算成10进制,关键在于各自的权值不同。
假设有人问你,十进数 1234 为什么是 一千二百三十四?你尽可以给他这么一个算式: 1234 = 1 * 103 + 2 * 102 + 3 * 101 + 4 * 100
十进制与二进制转换之相互算法
十进制转二进制:
2辗转相除至结果为1
将余数和最后的1从下向上倒序写 就是结果
例如302
302/2 = 151 0
151/2 = 75 1
75/2 = 37 1
37/2 = 18 1
18/2 = 9 0
9/2 = 4 1
4/2 = 2 0
2/2 = 1 0
故二进制为100101110
二进制转十进制
从最后一位开始算,依次列为第012...
n位的数(01)乘以2n次方
得到的结果相加就是答案
例如:01101011.转十进制:
0:120次方=1
121次方=2
022次方=0
123次方=8
024次方=0
125次方=32
126次方=64
027次方=0
然后:120
8032640107
二进制01101011=十进制107
一、二进制数转换成十进制数
由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为"按权相加"法。
二、十进制数转换为二进制数
十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部
分和小数部分分别转换后,再加以合并。
1. 十进制整数转换为二进制整数
十进制整数转换为二进制整数采用"2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
2.十进制小数转换为二进制小数
十进制小数转换成二进制小数采用"2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。
然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。
1.二进制与十进制的转换
1)二进制转十进制<BR>方法:"按权展开求和"
例:
1011.012 =(1×230×221×211×200×211×2210
=(802100.2510
=(11.2510
2在线二进制转换)十进制转二进制
· 十进制整数转二进制数:"除以2取余,逆序输出"
例: 8910=(10110012
2 89
2 44 …… 1
2 22 …… 0
2 11 …… 0
2 5 …… 1
2 2 …… 1
2 1 …… 0
0 …… 1
· 十进制小数转二进制数:"乘以2取整,顺序输出"
例:
(0625)10= (0101)2
0625
X 2
125

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。