您的位置:首页 > 其它

数学基础——进制转换

2014-02-22 00:22 295 查看
首先,先明确进制中的两个基本概念。基:二进制的基为二,八进制的基为八,十进制的基为十,十六进制的基为十六,以此类推。位权:以小数点开始,依次向左右两边编号,向左为0,1,2,…,向右为-1,-2,-3,…。以二进制为例,从小数点开始,向左位权依次 为20,21,22,向右依次为2-1,2-2,其他进制以此类推。

二进制,八进制,十六进制转换为十进制:按权相加法,即将该进制数的每一位乘以位权,然后相加,和即为该进制对应的十 ,进制。例如:
1010100(2)=1*26+1*24+1*22=84
FFFF(16)=F*163+F*162+F*161+F*160=65535


十进制转换成其他进制:
整数部分:除基取余法,即用目标数制的基数去除十进制数,取余,将所得商再除以基数,直到商为“0”,所得余数逆序即为该数的目标进制。

小数部分:乘基取整法,即小数部分乘以目标数制的基数,取整,将其小数部分再乘基数,直到小数部分为“0”,或满足要求的精度为止。(通常情况下都是算出满足要求的精度)。

例如:12.75(2)=1100.11



二进制转换成八进制:三位一体法,以小数点开始,向左右两边每三位一组,不足的话,在整数部分最高位前以及小数部分最 低位后补"0",即表现为该进制数首尾补零至小数点两边的位数都是三的倍数(注意无需补冗余的"0")。
例如:11.0100111(2)=011.010011100(2)=3.234(8)


二进制转换为十六进制:四位一体法,以小数点开始,向左右两边每四位一组,不足的话,在整数部分最高位前以及小数部分 最低位后补"0",即表现为该进制数首尾补零至小数点两边的位数都是四的倍数(注意无需补冗余的"0")。
例如:110.111010(2)=0110.11101000(2)=6.E8(16)



八进制转换成二进制:取一分三法,即将该进制数的每个位上的数看成是一个(一位)十进制数,除二取余转换成一个三位二进 制数,顺序即是。
例如:62.54(8)=6,2,.5,4(10)=110,010,.101,100(2)=110010.101100(2)=110010.1011(2)



十六进制转换成二进制:取一分四法,即将该进制数的每个位上的数看成是一个(一位)十进制数,除二取余转换成一个四位二 进制数,顺序即是。
例如:1E.23(16)=1,E,.2,3(16)=0001,1110,.0010,0011(2)=00011110.00100011(2)=11110.00100011(2)



八进制转换成十六进制或十六进制转换成八进制:间接法,以二进制为媒介,将八进制(十六进制)转换成二进制,再由二进 制转换成十六进制(八进制)。


下面我们来考虑负数时的情形。由于任何数在内存中都是以二进制补码形式存在的,而正数的补码等于原码,负数的补码是其 对应的正数的反码加一。举例说明,如将-152(10)转换成八进制,-152(10)=
-152
对应的正数:152,二进制原码:10011000,反码:01100111,反码加一:01101000
即-152的二进制表示为01101000(2),采用三位一体法,得其对应的八进制为150(8)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息