进制转化

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

 

 

 

 

 

一. 计算机文件大小单位

  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:计算器中的数值不能相减,只能相加,所有数值都是转换成补码的形式相加,然后得出最终结论;

  

  

原文地址:https://www.cnblogs.com/yj0405/p/14007820.html