🏆 作者简介,愚公搬代码
🏆《头衔》:华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主,腾讯云内容共创官,掘金优秀博主,51CTO博客专家等。
🏆《近期荣誉》:2023年华为云十佳博主,2022年CSDN博客之星TOP2,2022年华为云十佳博主等。
🏆《博客内容》:.NET、Java、Python、Go、Node、前端、IOS、Android、鸿蒙、Linux、物联网、网络安全、大数据、人工智能、U3D游戏、小程序等相关领域知识。
🏆🎉欢迎 👍点赞✍评论⭐收藏
文章目录
🚀前言
进制转换是将一个数字从一种进制表示转换为另一种进制表示的过程。在数学和计算机科学中,我们经常使用不同的进制系统来表示整数和小数。常见的进制系统包括二进制(基数为2)、八进制(基数为8)、十进制(基数为10)和十六进制(基数为16)。
要进行进制转换,我们需要了解每种进制系统的表示方法和计算规则。例如,十进制系统是我们日常生活中最常用的进制系统,使用0-9这10个数字。二进制系统则只使用0和1两个数字。
进制转换的方法主要有两种:逐位转换和除法取余法。逐位转换是将数字的每一位分别转换为目标进制的表示,然后组合起来。除法取余法则是通过不断地将数字除以目标进制的基数,并将余数作为结果的一部分,最后倒序排列余数。
进制转换在计算机科学中非常重要,特别是在计算机程序中涉及到二进制和十六进制的表示和操作。同时,进制转换也有助于我们更好地理解数字的概念,以及了解不同进制系统在数学和计算机科学中的应用。
🚀一、进制转换
🔎1.二进制转十进制
🦋1.1 无符号的二进制整数
要将无符号的二进制整数转换为十进制,可以使用以下方法:
-
将二进制数从右往左依次编号,从0开始,例如最右边的数编号为0,次右边的数编号为1,依此类推。
-
将二进制数的每一位与对应的权值相乘,并将结果相加。
-
权值的计算公式为2的n次方,其中n为该位的编号。
-
计算结束后,得到的结果即为转换后的十进制数。
例如,将二进制数110101转换为十进制:
-
将二进制数从右往左依次编号,得到如下:
5 4 3 2 1 0
1 1 0 1 0 1 -
计算每一位与对应权值的乘积,并将结果相加:
1 * 2^5 + 1 * 2 ^4 + 0 * 2^3 + 1 * 2^2 + 0*2^1 + 1 * 2^0 = 32 + 16 + 4 + 1 = 53
因此,将二进制数110101转换为十进制的结果为53。
🦋1.2 带符号的二进制整数
要将带符号的二进制整数转换为十进制,需要注意符号位的处理。
如果二进制整数的最高位为1,则表示为负数。可以通过以下步骤将带符号的二进制整数转换为十进制:
- 将二进制整数的最高位(符号位)去除,并记下符号。
- 将剩下的二进制数转换为十进制,可以使用方法如下:
- 从最低位开始,按权展开法将每位的值与相应的权相乘,并将结果相加。
- 权从0开始,每次增加1。
- 例如,二进制数1010转换为十进制的过程如下:
1 * 2^0 + 0 * 2^1 + 1 * 2^2 + 0 * 2^3 = 1 + 0 + 4 + 0 = 5
- 如果符号位为1,则将结果转换为负数,即将结果加上负号。
以下是一个带符号的二进制整数转换为十进制的示例:
二进制数:1101
- 符号位为1,表示为负数。
- 去除符号位后的二进制数为101。
- 将二进制数101转换为十进制:
1 * 2^0 + 0 * 2^1 + 1 * 2^2 = 1 + 0 + 4 = 5 - 将结果加上负号,最终结果为-5。
因此,带符号的二进制整数1101转换为十进制为-5。
🦋1.3 小数二进制数
要将小数的二进制数转换为十进制数,可以按照以下步骤进行:
-
将小数部分的二进制数从左到右依次编号为-1、-2、-3…以此类推。例如,对于二进制数0.101,小数部分的位数为3,对应的编号为-1、-2、-3。
-
将每一位小数部分的二进制数与对应的权重进行相乘。权重的计算方法为2的负幂次方,即权重为2-1、2-2、2^-3…以此类推。
-
将计算得到的结果相加,即为所求的十进制数。
例如,对于二进制数0.101,进行转换:
0.101 = 1 * 2^-1 + 0 * 2^-2 + 1 * 2^-3
= 0.5 + 0 + 0.125
= 0.625
所以二进制数0.101对应的十进制数为0.625。
🔎2.十进制转二进制
🦋2.1 转化整数
转换整数的十进制数值为二进制,可以使用除2取余法。
具体步骤如下:
- 将十进制数值除以2,得到商和余数。
- 再将商除以2,得到新的商和余数。
- 重复上述步骤,直到商为0为止。
- 按照从下往上的顺序,依次将得到的余数写在一起,即可得到对应的二进制数值。
举个例子:
将十进制数值15转换为二进制。
- 15 ÷ 2 = 7 余 1
- 7 ÷ 2 = 3 余 1
- 3 ÷ 2 = 1 余 1
- 1 ÷ 2 = 0 余 1
从下往上依次写出余数,得到二进制数值1111。所以,十进制数值15转换为二进制数值为1111。
🦋2.2 转化小数
将十进制小数转化为二进制小数的步骤如下:
-
将小数部分乘以2,得到的结果的整数部分作为二进制小数的第一位。将得到的小数部分保留,作为下一步计算的基础。
-
将上一步得到的小数部分再次乘以2,得出的整数部分作为二进制小数的第二位。将得到的小数部分保留。
-
重复以上步骤,直到小数部分为0或者达到所需的精度。
举个例子,我们将十进制小数0.5转化为二进制小数。
0.5 * 2 = 1.0,整数部分为1,小数部分为0.0
0.0 * 2 = 0.0,整数部分为0,小数部分为0.0
所以,0.5的二进制表示为0.1。
另外需要注意的是,如果小数部分无法精确地转化为二进制小数,那么转化过程将会无限循环。在实际应用中,可以根据所需的精度来确定转化的截止条件。
🚀二、题目
🚀感谢:给读者的一封信
亲爱的读者,
我在这篇文章中投入了大量的心血和时间,希望为您提供有价值的内容。这篇文章包含了深入的研究和个人经验,我相信这些信息对您非常有帮助。
如果您觉得这篇文章对您有所帮助,我诚恳地请求您考虑赞赏1元钱的支持。这个金额不会对您的财务状况造成负担,但它会对我继续创作高质量的内容产生积极的影响。
我之所以写这篇文章,是因为我热爱分享有用的知识和见解。您的支持将帮助我继续这个使命,也鼓励我花更多的时间和精力创作更多有价值的内容。
如果您愿意支持我的创作,请扫描下面二维码,您的支持将不胜感激。同时,如果您有任何反馈或建议,也欢迎与我分享。
再次感谢您的阅读和支持!
最诚挚的问候, “愚公搬代码”