还不会进制转换?那是你还没看到这篇文章...

本文介绍了C语言中不同进制的相关知识及转换方法。首先解释了进制概念,包括二进制、十进制、八进制和十六进制的特点。接着详细阐述了十进制与二进制、八进制、十六进制的转换方法,以及二进制与其他进制的转换,还说明了八进制和十六进制需通过二进制进行转换。

目录

一、何为进制?

二、 十进制转换为二进制、八进制、十六进制。  

三、 二进制转换为十进制、八进制、十六进制。

 四、八进制和十六进制之间相互转换。


一、何为进制?

数制是指用一组固定的数字符号和统一的规则来表示数值的方法。其中,按照进位方式计数的数制称为进位计数制。日常生活中,人们习惯用的进位计数制是十进制,而计算机则使用的是二进制。此外,为了某些特定的计算,进位计数制还包含了八进制和十六进制。

顾名思义,二进制就是逢二进一的数制,十进制就是逢十进一,八进制就是逢八进一,十六进制就是逢十六进一。

所以,二进制的数据中只包含0和1;十进制数据包含0~9;八进制数据包含0~7;十六进制数据包含0~9和A~F。

为了对十进制、八进制、十六进制共有的数据进行区分,通常会在八进制前面加上数字0,在十六进制前面加上数字0和字母x(大小写都可以)。

07表示八进制的7
7表示十进制的7
0x7表示十六进制的7
0X7也表示十六进制的7

详细可见此表:

注意观察:八进制7之后为8,满8进一,所以为10(一零)。

                  十六进制F(15)之后是16,满16进一,所以为10(一零)。

十进制二进制八进制十六进制
10000 0001010x1
20000 0010020x2
30000 0011030x3
40000 0100040x4
50000 0101050x5
60000 0110060x6
70000 0111070x7
80000 1000100x8
90000 1001110x9
100000 1010120xA
110000 1011130xB
120000 1100140xC
130000 1101150xD
140000 1110160xE
150000 1111170xF
160001 0000200x10


二、 十进制转换为二进制、八进制、十六进制。  

十进制转二进制:

“除2取余倒读”法,用十进制数除以2,取每次的余数,当商为零时,将结果倒着写。

 十进制转八进制:

“除8取余倒读”法,用十进制数除以8,取每次的余数,当商为零时,将结果倒着写。

十进制转十六进制:

“除16取余倒读”法,用十进制数除以16,取每次的余数,当商为零时,将结果倒着写。

注意理解:14在十六进制里面是E。 

三、 二进制转换为十进制、八进制、十六进制。

二进制转十进制:

按位运算法(书本上是从高位向低位顺序相加,而本人个人习惯是从低位向高位算起。注意分辨

 二进制转八进制:

因为2的3次方=8,所以我们用三个二进制位的数来表示八进制的数。

如果三位三位的划分,总会有位数不够怎么三位的时候,这个时候我们在选择前面补零,这个操作称为补位,注意理解。

 二进制转十六进制:

因为2的4次方=16,所以我们用四个二进制位的数来表示十六进制的数。

如果四位四位的划分,总会有位数不够怎么四位的时候,这个时候我们在选择前面补零。

 四、八进制和十六进制之间相互转换。

首先,我们已经知道了,一个八进制数是3个二进制的数来表示,一个十六进制的数是4个二进制的数来表示。

那么我们可不可以之间将八进制数转为十六进制的数。

注意:八进制是没办法直接转换为十六进制的!

既然不能直接转换,那能不能找到一个中间变量呢?通过中间变量来进行转换。想一想八进制和十六进制都和什么有关呢?

没错,就是二进制!

 至此,感谢观看,祝大家身体安康,学业有成!!!

参考资源链接:[实现十进制到IEEE754浮点数转换](https://wenku.csdn.net/doc/7h65p4eud4?utm_source=wenku_answer2doc_content) 对于希望将十进制浮点数转换为IEEE754标准二进制表示的开发者来说,理解浮点数在计算机中的表示至关重要。本问题的解决需要你深入掌握IEEE754标准以及相关的二进制转换算法。可以通过《实现十进制到IEEE754浮点数转换》一文获取实践指导。这篇文章详细介绍了如何使用C语言编写程序来实现这一转换过程。 首先,你需要定义一个结构体来表示IEEE754格式的浮点数,通常包含一个符号位、一个指数字段和一个尾数字段。接下来,是将输入的十进制浮点数分解为整数部分和小数部分。整数部分可以直接转换为二进制,而小数部分则需要通过乘以2取整的方式来逐步转换为二进制表示。 在二进制转换过程中,需要注意的是如何处理符号位、如何确定指数值,并且要考虑到IEEE754标准中对指数的偏移量处理。符号位取决于原始十进制数的正负,指数值的计算需要考虑到二进制表示中小数点的位置,并根据IEEE754标准进行适当的调整。最后,将得到的符号位、指数和尾数组合成最终的二进制字符串。 在编写程序时,除了要遵循上述步骤外,还需要考虑如何将指数和尾数部分转换为固定长度的二进制数,以及如何组合这些部分以形成最终的IEEE754格式的二进制表示。例如,一个32位的IEEE754浮点数由1位符号位、8位指数位和23位尾数位组成。 通过这一过程,你可以更深入地理解计算机是如何存储和处理浮点数的,这对于开发涉及浮点数操作的应用程序来说是必不可少的知识。进一步学习和实践,可以加深对计算机科学中数字表示和算法设计的理解。 参考资源链接:[实现十进制到IEEE754浮点数转换](https://wenku.csdn.net/doc/7h65p4eud4?utm_source=wenku_answer2doc_content)
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无念至此

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值