java基础复习 - 3 - 进制

进制

进制介绍

对于整数,有四种方式

  1. 二进制:0,1 满2进1,以0b或0B开头 0b1010
  2. 十进制:0-9,满10进1 1010
  3. 八进制:0-7,满8进1.以数字0开头表示 01010
  4. 十六进制:0-9及A-F,满16进1,以0x或0X开头表示,此处的A-F不区分大小写 0x10101

进制的转换

第一组

  1. 二进制转十进制
    从最低位(右边开始),将每个位上的数提取出来,乘以2的(位数-1)次方,然后求和
    0b1010转十进制
    0b1010=1*2^(1-1) + 1*2^(2-1) + 0 + 1 * 2^(4-1) = 10
  2. 八进制转十进制
    从最低位(右边开始),将每个位上的数提取出来,乘以8的(位数-1)次方,然后求和
  3. 十六进制转十进制
    从最低位(右边开始),将每个位上的数提取出来,乘以16的(位数-1)次方,然后求和

第二组

  1. 十进制转二进制
    将该数不断除以2,直到商为0为止,然后将每步的余数倒过来,就得到对应的二进制
    34转2进制 1 2 4 8 16 32
    34 = 0B100010
    1. 34 / 2 = 17 余 0
    2. 17 / 2 = 8 余 1
    3. 8 / 2 = 4 余 0
    4. 4 / 2 = 2 余 0
    5. 2 / 2 = 1 余 0
  2. 十进制转八进制
    将该数不断除以8,直到商为0为止,然后将每步的余数倒过来,就得到对应的八进制
    131 = 0203
  3. 十进制转十六进制
    将该数不断除以16,直到商为0为止,然后将每步的余数倒过来,就得到对应的十六进制
    237 = 0XED

第三组

  1. 二进制转八进制
    从低位开始,将二进制数每三位一组,转成对应的八进制数即可。
    0b11010101转成八进制
    0b11(3)010(2)101(5) = 0325
  2. 二进制转十六进制
    从低位开始,将二进制数每四位一组,转成对应的八进制数即可。
    0b11010101 = 0xD5

第四组

  1. 八进制转二进制
    将八进制每1位,转出对应的一个3位的二进制数即可
    0237 = 02(010)3(011)7(111) = 0b010011111
  2. 十六进制转二进制
    将八进制每1位,转出对应的一个4位的二进制数即可

原码、反码、补码

概括

  1. 二进制的最高位是符号位:0表示正数,1表示负数
  2. 正数的原码,反码、补码都一样
  3. 负数的反码 = 它的原码符号位不变,其它位取反
  4. 负数的补码 = 它的反码+1,负数的反码 = 负数的补码 - 1
  5. 0的反码,补码都是0
  6. java没有无符号数,换言之,java中的数都是有符号的
  7. 在计算机运算的时候,都是以补码的方式来运算的.
  8. 当我们看运算结果的时候,要看他的原码
posted @ 2022-03-12 01:44  杨大德  阅读(531)  评论(0)    收藏  举报