【Java基础】进制转换

前言

众所周知,计算机存储数据和运算都要使用二进制表示,如010111001,1和0其实也是一种表示方式,用来表示计算机的高电平和低电平

但是在java中如果数据都用0101011100这种来表示显然不直观,所以就引出了我们今天的主题,进制转换,那么计算机中有哪几种进制表示呢?

答案是最基本的二进制和八进制、十进制、十六进制
何为二进制?即逢二进一,所以二进制的表示全是有0、1组成,其余进制同理
那么为何是八进制、十六进制呢?
因为3位二进制数即可表示1位八进制数,4位二进制数即可表示1位十六进制数,纯粹是为了表示的简洁方便!

二进制与十进制之间的转换

二进制转十进制

以0101为例,从右往左,二进制位数分别乘以2的次幂(次幂从0开始依次递增)并求和,如下例
在这里插入图片描述
所以0101=5,下面代码亦可以验证

System.out.println("5的二进制数为:" + Integer.toBinaryString(5));
5的二进制数为:101

十进制转二进制

在这里插入图片描述
十进制转二进制也就是除2取余

二进制与八进制、十六进制的转换

二进制转八进制

因为3位二进制的最大值是7,八进制是逢8进1,所以八进制最大数字是7,则可以用3位二进制来表示1位八进制

如010111011,结果如下图
在这里插入图片描述
010111011的八进制值位273
java中表示八进制以数字0开头,用以区分十进制
所以八进制数273在java中就用0273表示
在这里插入图片描述
由图可验证计算正确
同理010111011转十六进制,4位为一组转换成十六进制
1011 1011 = bb b代表十进制数字11
java中以 0x开头表示十六进制数据 0xbb
十六进制标识符为0-9 和a-f

负数的二进制表现形式

有十进制转二进制可知 6 = 110,那么 -6 的表现形式就是6的二进制数取反+1

由于int型在计算机中占4个字节,所以6实际在计算机中表现形式为
0000 0000 0000 0000 0000 0000 0000 0110
取反结果为
1111 1111 1111 1111 1111 1111 1111 1001
+1 最终结果为
1111 1111 1111 1111 1111 1111 1111 1010

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值