二进制和十进制之间的转换
二进制和十进制之间的转换
二进制和十进制是计算机科学中最基本的两种数制。掌握它们之间的转换方法,对于理解计算机内部的工作原理至关重要。本文将详细介绍正十进制整数、负十进制整数、十进制小数以及带小数的二进制数的转换方法。
正十进制整数转换成二进制数
采用"除二取余,然后倒序排列,高位补零"的方法。计算机内部表示数的字节单位是定长的,如8位,16位,或32位。位数不够时,高位补零,正数高位补0,负数高位补1。以下示例中均以8位演示。
将正十进制整数除以二,得到的商再除以二,依此类推直到商为0或1时停止,然后在旁边标出各步的余数,最后倒着写出来,高位补零即可。
示例:把十进制数50转换为二进制数。
图中红色的数字为余数,50除以2得到的余数为010011,反过来就是110010,所以十进制数50转换为二进制数110010,然后高位补零后为00110010。
规范的写法为( 50 ) 10=( 00110010 ) 2。
负十进制整数转换成二进制数
先将对应的正整数转换成二进制后,对二进制取反(可查看位运算),然后对结果再加1。
注:如果是直接在二进制前面加负号则计算中不用加1,直接算出该数负号后面的正数所对应的二进制数然后在其前面加上负号即可。
示例:把十进制数-50转换为二进制数。
50的二进制数为 00110010
取反后为 11001101
加1后为 11001110
规范的写法为( -50 ) 10=( 11001110 ) 2。
十进制小数转换为二进制数
让小数点后的数乘以2,取结果的整数部分(不是1就是0),然后再用小数部分乘以2,再取结果的整数部分……依此类推,直到小数部分为0或者位数已经够了为止。然后把取的整数部分按先后次序排列即可。
示例:把十进制小数0.125转换为二进制数
当小数部分为0时,停止乘以2。然后正序排列就构成了0.125的二进制小数0.001。
当十进制小数的整数部分有大于0的整数时,把整数部分也转换称二进制,然后把整数部分和小数部分加在一起即可。
示例:把十进制数50.125转换为二进制数
十进制数50对应的二进制数为 00110010
十进制数0.125对应的二进制数为 001
相加后为 00110010.001
二进制整数转换为十进制数
首先将二进制数补齐位数,首位如果是0就代表是正整数,如果首位是1则代表是负整数。补齐位数以后,将二进制中的位数分别将下边对应的值相乘,把得到的结果相加后即为原二进制数转换后的十进制数。
示例:把二进制数110010转换为十进制数
二进制首位为0,直接补位计算。即二进制数110010转换后为十进制数50。
示例:把二进制数11001110转换为十进制数
若二进制首位为1时,就需要先取反加1再换算。
11001110 取反后为-00110001 (此处注意取反后前面有个负号,且本身就是8位)
即二进制数11001110转换后为十进制数-50。
带小数的二进制数转换为十进制数
将二进制中的小数部分分别于下图所示对应的值相乘后相加得到的值即为换算后的十进制数。
示例:把二进制数0.1101转换为十进制数
即二进制数0.1101转换后为十进制数0.8125。顺便说下,一个数的负数次幂等于这个数的正数次幂的倒数,即2的-1次幂等于2的1次幂的倒数为1/2。
本文原文来自CSDN博客