zoukankan      html  css  js  c++  java
  • 进制转化

    摘要:本文主要记录计算机进制转换,以及原码、反码、补码之间的关系;

     

     

     

     

     

    一. 计算机文件大小单位

      b = bit位(比特)

      B = Byte(字节)

      

      1Bytes = 8bit  ps:一个字节等于8位 可以简写成1B=8b

      1KB = 1024B

      1MB = 1024 KB

      1GB = 1024MB

      1TB = 1024GB

      1PB = 10.14TB

      1EB = 1024PB

    二. 进制的转换

     二进制:由2个数字组成,有0 和 1 例: 0b101
     八进制:由8个数字组成,有0,1,2,3,4,5,6,7 例: 0o127
     十进制:有10个数字组成,有0,1,2,3,4,5,6,7,8,9 例: 250
     十六进制:有16个数字组成,有0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f(字母大小写都可以,分别代表10,11,12,13,14,15) 例:0xff 0Xff 0XFF

    2.1 二进制转化为十进制

      例如:0b10100101

      运算:1* 2^0 + 0* 2^1 + 1* 2^2 + 0* 2^3 + 0* 2^4 + 1* 2^5 + 0* 2^6 + 1* 2^7= 

        1 + 0 + 4 + 0 + 0 + 32 + 0 + 128 = 165

    2.2 八进制转化为十进制

           例如:0o127

           运算:7*8^0 + 2*8^1 + 1*8^2 = 7+16+64 = 87

     

    2.3 十六进制转化为十进制

         #例如: 0xff

         运算:15*16^0 + 15*16^1 = 255

    2.4 十进制转变为二进制

     426 => 0b110101010 

    运算过程: 用426除以2,得出的结果再去不停地除以2,直到除完最后的结果小于2停止,在把每个阶段求得的余数从下到上依次拼接完毕即可;

    2.5 十进制转化为八进制

     426 => 0o652

    运算过程: 用426除以8,得出的结果再去不停地除以8,直到除完最后的结果小于8停止,在把每个阶段求得的余数从下到上依次拼接完毕即可;

    2.6 十进制转化成十六进制

     426 => 0x1AA

    运算过程: 用426除以16,得出的结果再去不停地除以16,直到除完最后的结果小于16停止,在把每个阶段求得的余数从下到上依次拼接完毕即可;

    2.7 二进制与八进制转换

       二进制与八进制对应关系:

    八进制 二进制
    0 000
    1 001
    2 010
    3 011
    4 100
    5 101
    6 110
    7 111

     例:1010100101

    八进制:从右向左 3位一隔开 不够三位用0补位 变成:
    001 010 100 101
    0o 1 2 4 5

    2.8 二进制与十六进制转换

      二进制与十六进制对应关系:

    十六进制 二进制
    0 0000
    1 0001
    2 0010
    3 0011
    4 0100
    5 0101
    6 0110
    7 0111
    8 1000
    9 1001
    a 1010
    b 1011
    c 1100
    d 1101
    e 1110
    f 1111

    例:1010100101
    十六进制:从右向左 4位一隔开 不够四位用0补位 变成:
    0010 1010 0101
    0x2a5

    2.8 八进制与十六进制转换

      八进制和十六进制相互转换时,要用二进制作为中间数值,然后在转换成对应的进制;

     三 . 原码、补码、反码

    3.1原码 或 补码 都是二进制数据

        原码: 二进制的表现形式
      反码: 二进制码0变1,1变0叫做反码,.(首位符号位不取反)
      补码: 二进制的存储形式

      转换规律:

      如果是一个正数: 原码 = 反码 = 补码
      如果是一个负数: 原码 与 补码 之间 , 互为取反加1
      原码 = 补码取反加1 给补码求原码
      补码 = 原码取反加1 给原码求补码

     ps:计算器中的数值不能相减,只能相加,所有数值都是转换成补码的形式相加,然后得出最终结论;

      

      

  • 相关阅读:
    人们常说的带宽是什么意思?
    关注前端性能
    单测学习笔记
    基于 Istanbul 生成测试用例覆盖率报告
    如何做高水科研
    Human-like Controllable Image Captioning with Verb-specific Semantic Roles(具有动词语义角色的类人可控图像字幕生成)
    Netty应用程序的全部基本构建模块_netty学习笔记(2)-20210405
    异步和事件驱动_netty学习笔记(1)-20210330
    理解 cosocket(转)
    nginx lua阶段处理流程
  • 原文地址:https://www.cnblogs.com/yj0405/p/14007820.html
Copyright © 2011-2022 走看看