编程开发 > JAVA > 文章内容

java基础知识总结(67)

2016-6-4编辑:ljnbset

 进制转换基础

 1) 十进制

    逢10进1

    基数: 10

    权: 10^n,  10000 1000 100 10 1

    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

              = 23679

 

 2) 二进制

    逢2进1

    基数: 2

    权: 2^n,  128 64 32 16 8 4 2 1

    01000001(2) = 1*64 + 1*1

                = 65(10)

 3) 补码基础

      -128 10000000  11111111 11111111 11111111 10000000

10  2进制   ...       ...

     8421  11110111  11111111 11111111 11111111 11110111

-8   1000  11111000  11111111 11111111 11111111 11111000

-7   1001  11111001  11111111 11111111 11111111 11111001

-6   1010  11111010  11111111 11111111 11111111 11111010

-5   1011  11111011  11111111 11111111 11111111 11111011

-4   1100  11111100  11111111 11111111 11111111 11111100

-3   1101  11111101  11111111 11111111 11111111 11111101

-2   1110  11111110  11111111 11111111 11111111 11111110

-1   1111  11111111  11111111 11111111 11111111 11111111

 0   0000  00000000  00000000 00000000 00000000 00000000

 1   0001  00000001  00000000 00000000 00000000 00000001

 2   0010  00000010  00000000 00000000 00000000 00000010

 3   0011  00000011  00000000 00000000 00000000 00000011

 4   0100  00000100  00000000 00000000 00000000 00000100

 5   0101  00000101  00000000 00000000 00000000 00000101

 6   0110  00000110  00000000 00000000 00000000 00000110

 7   0111  00000111  00000000 00000000 00000000 00000111

           00001000  00000000 00000000 00000000 00001000

           ....      ...

       127 01111111  00000000 00000000 00000000 01111111

       128 --------  00000000 00000000 00000000 10000000

      

  补码运算:

  -1  1111

  -1  1111

 *

 ----------

      1111

     1111

    1111

   1111

   101010

 -----------

      0001

 

  4) A Java 内部只有二进制补码

     B Java 内部采用补码运算, 自动发送上溢出和下溢出

     C Java内部没有10进制! 但是Java尽量按照人类习惯输入输出

     D 补码的负数 最高位是 1, 也称作符号位

  5) 16进制, 是2进制的简写, 方便专业人员书写2进制数据

    16进制

    逢16进1

    基数: 16

    权: 16^n,  256 16 1

    16进制数字: 0 1 2 3 4 5 6 7 8 9 a  b  c  d  e  f

               0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

       

    41(16) = 4*16 + 1*1

           = 65(10)

           = 0100 0001(2)

             8421 8421

             4    1   (16)

   

    128 64 32 16 8 4 2 1

     0   1  0 0  0 0 0 1

    练习:转换以下十进制为二进制 192(10)  137(10)   145(10)  

    192(10) = 1100 0000 (2)

              c    0    (16)

    -8(10) = fffffff8(16)

java基础知识总结(66)

热点推荐

登录注册
触屏版电脑版网站地图