java 二进制与十进制互相转换(支持负数) 20251631编辑

Heaven helps those who help themselves
资深码农+深耕理财=财富自由
欢迎关注

java 二进制与十进制互相转换(支持负数)

Created by Marydon on 2022-04-06 09:11

1.情景展示

java二进制如何转成十进制?

十进制如何转换成二进制?

2.具体分析

二进制:用0和1表示(最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小);

十进制:10个阿拉伯数字(0~9)共计10个数字表示。

3.解决方案

二进制转十进制

/*
* 二进制转十进制(支持用负数表示的二进制)
* @description:
* @date: 2022/4/1 14:47
* @param: binary 二进制
* @return: java.lang.Integer 十进制
*/
@Nullable
public static Integer toDecimal(String binary) {
if (StringUtils.isEmpty(binary)) return null;
int i = new BigInteger(binary, 2).intValue();
// 如果int不够用(>32位),可以换成long(64位)
// Long l = new BigInteger(binary, 2).longValue();
log.debug("二进制转十进制:\n{}", i);
return i;
}

十进制转二进制

/*
* 十进制转二进制
* @description:
* 1.所谓原码就是二进制定点表示法,即:最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
* 2.反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
* 3.补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。
* int:在java当中的存储范围是32位;
* long:在java当中的存储范围是64位;
* byte 1个字节
* short 2个字节
* int 4个字节
* long 8个字节
* @date: 2022/4/1 14:40
* @param: i
* 如果你的number是正整数,则会自动转化为普通的原码;
* 若是number是负数,则会转化为补码。
* @return: java.lang.String
*/
@NotNull
public static String fromDecimal(Integer i) {
if (i == null) return "";
String binaryString = Integer.toBinaryString(i);
// 如果int不够用(>32位),可以换成long(64位)
// String binaryString = Long.toBinaryString(i);
log.debug("十进制转二进制:\n{}", binaryString);
return binaryString;
}

测试

toDecimal(fromDecimal(-115));

 

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

 相关推荐:

与君共勉:最实用的自律是攒钱,最养眼的自律是健身,最健康的自律是早睡,最改变气质的自律是看书,最好的自律是经济独立 。

您的一个点赞,一句留言,一次打赏,就是博主创作的动力源泉!

↓↓↓↓↓↓写的不错,对你有帮助?赏博主一口饭吧↓↓↓↓↓↓

posted @   Marydon  阅读(1631)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示
sorry,本博客所有代码禁止复制,原创代码需扫码支付方可获取!
关闭

1、先加好友再付费,点我加好友;

2、代码不能满足你的需求?加好友付费定制你的专属代码!

3、付费标准及方式,点我查看详情。