javaSE复习之——进制编码

进制的运算

  • 二进制向右移动两位 :15 >> 2 = 3

    • ps:1111 向右移动两位 等于 0011 = 3
  • 二进制向左移动两位 :15 << 2 = 60

    • ps:1111 向左移动两位 等于 111100 = 60
  • 异或运算 :2 ^ 3 = 1

    • 例子:0010 ^ 0011 = 0001

      ps:也就是相同为0不同为1,当0001^0011或者0001^0010时都能得出另一个数,和乘法除法运算一样

  • 与运算 :2 & 3 = 2

    • 例子:0010 & 0011=0010

      “与”运算中也是二进制位的运算,只要有一个是0那么结果就是0

java中的数据表示法

  • 在java中数据前面加 0x表示16进制 0b表示二进制 0表示8进制

进制转换

任何进制转10进制都是 每一位 第某位的数据 乘 被转换的进制数 的 第某位索引次幂 相加

例子

八转10:

1
0120=1 * 8 ^ 2 + 2 * 8 ^ 1 + 0 * 8 ^ 0 = 80

10进制转任何进制都是 除 要转换的进制数 然后取余数,以此类推,最后得出的数据为:进制数从左到右 = 余数列表的从下到上

2、8互转与2、16互转方法:

  • 2转8 = 3位一组转8
    • 8转2 = 每一位转2
  • 2转16 = 4位一组转16
    • 16转2 = 每一位转2

二进制快速转换10进制方法:

  • 二进制:1 1 1 1 1 1 1 1
  • 十进制:128 64 32 16 8 4 2 1

二进制表示法:

符号位0为正,1为负

计算机二进制运算原理

计算机二进制运算都是用补码

  • 例子:

    +7 的原码是 0 0000111

  • ps:正数的、原码、反码、补码都一样

-7 的原码为 1 0000111

反码为 1 1111000 (符号位不变)

补码为 1 1111001(在反码的基础上加1)