计算机进制转换

一、计算机系统进制概述

  • 数制是用一组固定的符号和统一的规则来表示数值的方法。
  • 计算机底层使用的数制是二进制。
  • 用Java编程使用的是十进制。Java底层仍使用二进制。
  • 计算机常用的数制还有八进制和十六进制。

1、十进制

十进制的基本数字0~9,逢十进位。
10称做“基数”,10^n(10的n次幂)被称做“权”。

10000 = 1 x 10^4
1000 = 1 x 10^3
100 = 1 x 10^2
10 = 1 x 10^1
1 = 1 x 10^0

示例:
23678(10进制) = 2*10000+3*1000+6*100+7*10+8*1
               = 2*10^4 +3*10^3+6*10^2+7*10^1+8*10^0
               = 23678

2、二进制

二进制的基本数字是0、1,逢2进位。
二进制的基数为2,权为2^n(2的n次方)。

1 = 1 x 2^0
10 = 1 x 2^1
100 = 1 x 2^2
1000 = 1 x 2^3
10000 = 1 x 2^4
100000 = 1 x 2^5
1000000 = 1 x 2^6
10000000 = 1 x 2^7

示例:(1111)2=(——)10(二进制转化成十进制)
(1111)2 = 1x2^3+1x2^2+1x2^1+1x2^0 = 8+4+2+1 = 15

3、十六进制

  • 基本数字:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F
  • 特点:逢十六进位
  • 十六进制是二进制的简写,方便专业人员书写二进制数据。
  • 16进制的基数为16,权为16^n(16的n次方)。
  • 在Java代码中十六进制数用0X或0x做前缀(0是数字零,而不是字母o)。
0x1000 = 1 x 16^3
0x100 = 1 x 16^2
0x10 = 1 x 16^1
0x1 = 1 x 16^0

示例:(5E)16 = (——)10(十六进制转化成十进制)
5 x 16^1+14 x 16^0 = 80+14 = 94

二、十六进制与其它进制的转换

1、十六进制转化为十进制

(41)16 = (——)10
4x16^1+1x16^0 = 65

2、十六进制转化为二进制

(41)16 = (——)2
(0100 0001)2
 说明:16进制的1位数代表2进制的4位数

三、二进制与其它进制的转换

1、二进制转化为十进制

(10110)2 = (——)10
1x2^4+1x2^2+1x2^1 = (22)10

2、二进制转化为十六进制

规律:四位二进制数相当于一位十六进制数。

(1101 0110)2 = (——)16
分别将1101和0110转化成十进制数,是13和6;13是十六进制中的D
1101 0110 = (D6)16

3、习题

已知:计算机的基本存储单位是字节(byte),一个字节有8位。8位二进制的最大值 = (1111 1111)2 。 编写程序,计算并显示8位二进制数的最大值,即将(1111 1111)2转换为十进制数。

解题思路(1):
(1111 1111)2 = 1x2^7+1x2^6+1x2^5+1x2^4+1x2^3+1x2^2+1x2^1+1x2^0

代码:
System.out.println(Math.pow(2, 7)+
                Math.pow(2, 6)+
                Math.pow(2, 5)+
                Math.pow(2, 4)+
                Math.pow(2, 3)+
                Math.pow(2, 2)+
                Math.pow(2, 1)+
                Math.pow(2, 0));   

解题思路(2):
(1111 1111)2 = (10000 0000)2 - 1
1x2^8-1

代码:
System.out.println(Math.pow(2, 8)-1);   

四、十进制与其它进制的转换

1、十进制转换为二进制

规律:不断除以2,保留余数,商为0时不再除2。将所有余数倒序排列

示例:
(13)10 = (——)2
      13/2
商      6       余数  1
       6/2
商      3       余数  0
       3/2
商      1       余数  1
       1/2
商      0       余数  1
结果: (13)10 = (1101)2

2、十进制转换为十六进制

规律:不断除以16,保留余数,商为0时不再除16。将所有余数倒序排列

示例:
(138)10 = (——)16
      183/16
商      8       余数  10   A
       8/16
商      0       余数   8
结果: (138)10 = (8A)16

你可能感兴趣的:(计算机进制转换)