zoukankan      html  css  js  c++  java
  • 二进制,八进制,十进制,十六进制转换

    99 :二进制是1100011 八进制是143 十六进制是63
    113: 110001 161 71
    127: 100100111 447 127
    192: 11000000 300 C0
    324: 101000100 504 144



    算法:

    十进制与二进制转换之相互算法
    十进制转二进制:

    用2辗转相除至结果为1

    将余数和最后的1从下向上倒序写 就是结果

    例如302

    302/2 = 151 余0

    151/2 = 75 余1

    75/2 = 37 余1

    37/2 = 18 余1

    18/2 = 9 余0

    9/2 = 4 余1

    4/2 = 2 余0

    2/2 = 1 余0

    故二进制为100101110



    二进制转十进制

    从最后一位开始算,依次列为第0、1、2...位

    第n位的数(0或1)乘以2的n次方

    得到的结果相加就是答案

    例如:01101011.转十进制:

    第0位:1乘2的0次方=1

    1乘2的1次方=2

    0乘2的2次方=0

    1乘2的3次方=8

    0乘2的4次方=0

    1乘2的5次方=32

    1乘2的6次方=64

    0乘2的7次方=0

    然后:1+2+0

    +8+0+32+64+0=107.

    二进制01101011=十进制107.



    一、二进制数转换成十进制数

    由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为"按权相加"法。



    二、十进制数转换为二进制数

    十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。

    1. 十进制整数转换为二进制整数

    十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。



    2.十进制小数转换为二进制小数

    十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。

    然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。

    回答者:HackerKinsn - 试用期 一级 2-24 13:31



    1.二进制与十进制的转换

    (1)二进制转十进制<BR>方法:"按权展开求和"

    例:

    (1011.01)2 =(1×23+0×22+1×21+1×20+0×2-1+1×2-2)10

    =(8+0+2+1+0+0.25)10

    =(11.25)10

    (2)十进制转二进制



    · 十进制整数转二进制数:"除以2取余,逆序输出"

    例: (89)10=(1011001)2

    2 89

    2 44 …… 1

    2 22 …… 0

    2 11 …… 0

    2 5 …… 1

    2 2 …… 1

    2 1 …… 0

    0 …… 1

    · 十进制小数转二进制数:"乘以2取整,顺序输出"

    例:

    (0.625)10= (0.101)2

    0.625

    X 2

    1.25

    X 2

    0.5

    X 2

    1.0

    2.八进制与二进制的转换

    例:将八进制的37.416转换成二进制数:

    37 . 4 1 6

    011 111 .100 001 110

    即:(37.416)8 =(11111.10000111)2

    例:将二进制的10110.0011 转换成八进制:

    0 1 0 1 1 0 . 0 0 1 1 0 0

    2 6 . 1 4

    即:(10110.011)2 =(26.14)8

    3.十六进制与二进制的转换<BR>例:将十六进制数5DF.9 转换成二进制:

    5 D F . 9

    0101 1101 1111.1001

    即:(5DF.9)16 =(10111011111.1001)2



    例:将二进制数1100001.111 转换成十六进制:

    0110 0001 . 1110

    6 1 . E

    即:(1100001.111)2 =(61.E)16

  • 相关阅读:
    HDU 5938 Four Operations 【贪心】(2016年中国大学生程序设计竞赛(杭州))
    HDU 5935 Car 【模拟】 (2016年中国大学生程序设计竞赛(杭州))
    HDU 5934 Bomb 【图论缩点】(2016年中国大学生程序设计竞赛(杭州))
    HDU 5933 ArcSoft's Office Rearrangement 【模拟】(2016年中国大学生程序设计竞赛(杭州))
    HDU 5929 Basic Data Structure 【模拟】 (2016CCPC东北地区大学生程序设计竞赛)
    【转】LaTeX 符号命令大全
    HDU 5922 Minimum’s Revenge 【模拟】 (2016CCPC东北地区大学生程序设计竞赛)
    HDU 5927 Auxiliary Set 【DFS+树】(2016CCPC东北地区大学生程序设计竞赛)
    数据结构之稀疏矩阵
    C++中引用(&)的用法和应用实例
  • 原文地址:https://www.cnblogs.com/ejiyuan/p/1109274.html
Copyright © 2011-2022 走看看