Java进制的分类,二进制转十进制

进制的分类
  • 十进制(decimal)
    • 数字组成:0-9
    • 进位规则:满十进一
  • 二进制(binary)
    • 数字组成:0-1
    • 进位规则:满二进一,以0b或0B开头
  • 八进制(octal):很少使用
    • 数字组成:0-7
    • 进位规则:满八进一,以数字0开头表示
  • 十六进制
    • 数字组成:0-9,a-f
    • 进位规则:满十六进一,以0x或0X开头表示,此处的a-f不区分大小写

代码演示:

class BinaryTest{
    public static void main(String[] args){
        int i1 = 103;   //十进制
        
        int i2 = 0b10;   //二进制
        
        int i3 = 007;      //八进制
        
        int i4 = 0x23a;     //十六进制
        
        System.out.println(i1);				//103
        System.out.println(i2);				//2
        System.out.println(i3);				//7
        System.out.println(i4);				//570
    }
}
进制的换算举例
十进制二进制八进制十六进制
0000
10111
21022
31133
410044
510155
611066
711177
81000108
91001119
10101012a或A
11101113b或B
12110014c或C
13110115d或D
14111016e或E
15111117f或F

二进制转十进制

二进制如何表示整数
  • 计算机数据的存储使用二进制 补码 形式存储,并且 最高位是符号位
    • 正数:最高位是0
    • 负数:最高位是1
  • 规定
    • 正数的补码反码 和 **原码 **都一样,称为 三码合一
    • 负数的补码、反码和原码不一样:
      • 负数的 原码 :把十进制转为二进制,然后最高位设置为1
      • 负数的 反码 :在原码的基础上,最高位不变,其余位取反(0变1,1变0)
      • 负数的 补码 :反码 +1
二进制转十进制:权相加法

针对于byte数据举例来说 byte b1 = 11

举例二进制表示十进制11的补码、反码和原码

高位 低位

00001011

最高位是0,所以为正数。

1*2^3

1*2^1

1*2^0

相加得8+2+1=11

举例二进制表示十进制-11的补码、反码和原码

byte b2 = -11

首先表示11的原码

00001011

为了表示-11的原码,需要把十进制转换为二进制,然后最高位设置为1,-11的原码如下

10001011

然后求出-11的反码:在原码的基础上,最高位不变,其余位取反(0变1,1变0),-11的反码如下

11110100

然后求-11的补码:反码+1,-11的补码如下

11110101

注意:计算机数据的存储使用二进制 补码 形式存储。

十进制转二进制

方法:除2取余的逆

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值