java演示--十进制/十六进制/二进制深度理解!

1. 进制:

1)十进制:
  1.1)规则:101
  1.2)数字:0 1 2 3 4 5 6 7 8 9
  1.3)基数:10
  1.4):万 千 百 十 个
2)二进制:
  2.1)规则:21
  2.2)数字:0 1
  2.3)基数:2
  2.4):128 64 32 16 8 4 2 1
3)十六进制:
  3.1)规则:161
  3.2)数字:0 1 2 3 4 5 6 7 8 9 a b c d e f
  3.3)基数:16
  3.4):65536 4096 256 16 1

二进制转换为十进制的规则(正数):所有为1的权相加

要求:今天必须熟练记住最后4个权(8 4 2 1)

:      32  16  8  4  2  1
二进制:   1   1   0  1  0  1
十进制:   32+16+4+1----------------53:      32  16  8  4  2  1
二进制:   0   0   1  1  0  1
十进制:   8+4+1--------------------13:      32  16  8  4  2  1
二进制:   1   0   0  1  1  1
十进制:   32+4+2+1-----------------39

2. 十六进制的权:

160次幂---------------1
161次幂---------------16
162次幂---------------256
163次幂---------------4096
164次幂---------------65536

二进制的权:

20次幂----------------1
21次幂----------------2
22次幂----------------4
23次幂----------------8
24次幂----------------16
25次幂----------------32

十进制的权:

100次幂---------------1
101次幂---------------10
102次幂---------------100
103次幂---------------1000
104次幂---------------10000

1. 什么是2进制

逢2进1的计数规则。计算机中的变量/常量都是按照2进制来计算的。

  • 2进制:

    • 规则:逢2进1
    • 数字:0 1
    • 基数:2
    • 权:128 64 32 16 8 4 2 1

如何将2进制转换为10进制:

 - 将一个2进制每个1位置的权相加即可--------正数

   ```java
   权:    32  16  8  4  2  1
   二进制:  1   0  1  1  0  1
   十进制: 32+8+4+1=45
   ```

2. 什么是16进制:逢16进1的计数规则

  • 16进制:

    • 规则:逢16进1
    • 数字:0 1 2 3 4 5 6 7 8 9 a b c d e f
    • 基数:16
    • 权:4096 256 16 1
  • 用途:因为2进制书写太麻烦,所以常常用16进制来缩写2进制

  • 如何缩写:将2进制从低位开始,每4位2进制缩为1个16进制(每4位1缩)

    :                  8 4 2 1
    2进制:   0010  1001  0010  1101  1110  1111  0110  1000
    16进制:   2     9     2     d     e     f     6      8----292def68
        
    权:                  8 4 2 1
    2进制:  0001 1100 1010 0011 1101
    16进制:  1    c    a    3    d---------1ca3d
        
    权:                  8 4 2 1
    2进制:   0011 1010 1011 1010 1011
    16进制:   3    a    b    a    b--------3abab
    

3. 补码

  • 计算机处理有符号数(正负数)的一种编码方式

  • 以4位2进制为例讲解补码的编码规则:

    • 计算的时候如果超出4位则高位自动溢出舍弃,保持4位不变
    • 将4位2进制数分一半作为负数使用
    • 最高位称为符号位,高位为1是负数,高位为0是正数
  • 规律数:

    • 0111为4位补码的最大值,规律是1个0和3个1,可以推导出:
      • 32位补码的最大值:1个0和31个1------(011111111111…)
    • 1000为4位补码的最小值,规律是1个1和3个0,可以推导出:
      • 32位补码的最小值:1个1和31个0------(100000000000…)
    • 1111为4位补码的-1,规律是4个1,可以推导出:
      • 32位补码的-1:32个1--------(111111111111…)

深入理解负值:

 - 记住32位2进制数的-1的编码为:32个1

 - 用-1减去0位置对应的权----------负数

   ```java
   1)11111111111111111111111111111111 = -1
   2)11111111111111111111111111111101 = -1-2= -3
   3)11111111111111111111111111111001 = -1-2-4= -7
   4)11111111111111111111111111111000 = -1-1-2-4= -8
   5)11111111111111111111111101101011 = -1-4-16-128= -149
   6)11111111111111111111111101101100 = -1-1-2-16-128 = -148
   ```

互补对称现象:-n=~n+1-----取反+1

 ```java
 -7    = 11111111111111111111111111111001 = -1-2-4=-1
 ~-7   = 00000000000000000000000000000110 = 2+4=6
 ~-7+1 = 00000000000000000000000000000111 = 1+2+4=7 
     
 5     = 00000000000000000000000000000101 = 1+4=5
 ~5    = 11111111111111111111111111111010 = -1-1-4=-6
 ~5+1  = 11111111111111111111111111111011 = -1-4=-5
     
 12    = 00000000000000000000000000001100 = 4+8=12
 ~12   = 11111111111111111111111111110011 = -1-4-8=-13
 ~12+1 = 11111111111111111111111111110100 = -1-1-2-8=-12
 ```

4. 位运算

  • 取反:~

    • 0变1,1变0
  • 与运算:&

    • 运算规则:逻辑乘法,见0则0

      0 & 0 ---------> 0
      0 & 1 ---------> 0
      1 & 0 ---------> 0
      1 & 1 ---------> 1
      
  • 或运算:|

    • 运算规则:逻辑加法,见1则1

      0 | 0 ----------> 0
      0 | 1 ----------> 1
      1 | 0 ----------> 1
      1 | 1 ----------> 1
      
  • 右移位运算:>>>

    • 运算规则:将2进制数整体向右移动,低位自动溢出舍弃,高位补0
  • 左移位运算:<<

    • 运算规则:将2进制数整体向左移动,高位自动溢出舍弃,低位补0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

闫氏开发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值