c语言进制转换pdf下载,c语言_各种进制转换.pdf

c 语言 各种进制转换

计算机中常用的数的进制主要有:二进制、八进制、十六进制。

2 进制,用两个阿拉伯数字: 0、1;

8 进制,用八个阿拉伯数字: 0、1、2、3、4 、5、6、7;

10 进制,用十个阿拉伯数字: 0 到 9;

16 进制就是逢 16 进 1,但我们只有 0~9 这十个数字,所以我们用 A,B,C,D,

E,F 这五个字母来分别表示 10,11,12,13,14,15。字母不区分大小写。

以下简介各种进制之间的转换方法:

一、二进制转换十进制

例:二进制 “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 个数分别对应 4、2、1 的状态,然后将为状态为 1 的相加,如:

010 = 2

110 = 4+2 = 6

111 = 4+2+1 = 7

011 = 2+1 = 3

结果为: 2673

三、二进制转换十六进制

十六进制换二进制的方法也类似, 只要每组 4 位,分别对应 8、4 、2、1 就行了,

如分解为:

0101 1011 1011

运算为:

0101 = 4+1 = 5

1011 = 8+2+1 = 11 (由于10 为 A,所以 11 即 B)

1011 = 8+2+1 = 11 (由于10 为 A,所以 11 即 B)

结果为: 5BB

四、二进制数转换为十进制数

二进制数第 0 位的权值是 2 的 0 次方,第 1 位的权值是 2 的 1 次方……

所以,设有一个二进制数: 0110 0100 ,转换为 10 进制为:

计算: 0 * 20 + 0 * 21 + 1 * 22 + 0 * 23 + 0 * 24 + 1 * 25 + 1 * 26 + 0

* 27 = 100

五、八进制数转换为十进制数

八进制就是逢 8 进 1。

八进制数采用 0 ~7 这八数来表达一个数。

八进制数第 0 位的权值为 8 的 0 次方,第 1 位权值为 8 的 1 次方,第 2 位权值为

8 的 2 次方……

所以,设有一个八进制数: 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

故二进制为 100

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值