数学基础——进制转换
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)。
二进制,八进制,十六进制转换为十进制:按权相加法,即将该进制数的每一位乘以位权,然后相加,和即为该进制对应的十 ,进制。例如:
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)。
相关文章推荐
- Direct3D数学基础函数
- 【ACM-Steps1.2】简单字符串处理、简单数学题、进制转换系列8题(一)
- 3D 图形编程的数学基础(3) 矩阵基本变换
- 模式识别的应掌握的数学基础
- 【原创】开源Math.NET基础数学类库使用(17)C#计算矩阵条件数
- HDU 4937 Lucky Number (数学,进制转换)
- 3D游戏的数学基础
- 机器学习笔记_数学基础_2-概率论
- 机器学习知识点(三十三)机器学习入门的数学基础
- 机器学习笔记_数学基础_5-矩阵理论_续1_QR分解
- ACM-ICPC集训--数学基础知识
- 机器学习和计算机视觉必须的数学基础
- 机器学习部分数学基础
- 【Unity Shader入门精要】Shader所需的数学基础
- 【原创】开源Math.NET基础数学类库使用(05)C#解析Delimited Formats数据格式
- python 深度学习、python神经网络算法、python数据分析、python神经网络算法数学基础教学
- 有意思的数学基础面试题
- 人工智能课程总结(一)数学基础 一些值得看的博客链接
- 机器学习数学基础--偏导数
- 论数学的基础作用