前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >二进制计算

二进制计算

原创
作者头像
HLee
修改2021-06-10 11:01:03
6670
修改2021-06-10 11:01:03
举报
文章被收录于专栏:房东的猫房东的猫

简介

二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。因为电路的逻辑只有0和1两个状态,这里的0和1并不是数字的0和1,0和1是表示两种不同的状态,0表示低电平,1表示高电平。计算机是由无数个逻辑电路组成的,通过0和1的无限位数和组合来表达信息。

Java内置的进制转换

在Java中内置了几个方法来帮助我们进行各种进制的转换。如下图所示(以Integer整形为例):

代码语言:javascript
复制
二进制:Integer.toBinaryString(int i)
八进制:Integer.toOctalString(int i)
十八进制:Integer.toHexString(int i)
代码语言:javascript
复制
二进制转十进制:
    Integer.valueOf("0101",2)
    Integer.parseInt("11", 2)
八进制:Integer.valueOf("376",8)
十六进制:Integer.valueOf("FFFF",16)

使用Integer类中的parseInt()方法和valueOf()方法都可以将其他进制转化为10进制。

代码语言:javascript
复制
System.out.println("int最大正数:" + Integer.MAX_VALUE);
System.out.println("int最大正数二进制表示:" + Integer.toBinaryString(Integer.MAX_VALUE));
System.out.println("int最小负数:" + Integer.MIN_VALUE);
System.out.println("int最小负数二进制表示:" + Integer.toBinaryString(Integer.MIN_VALUE));

System.out.println("二进制定义打印int能表示的最大数:" + 0b01111111_11111111_11111111_11111111);
System.out.println("二进制定义打印int能表示的最小数:" + 0b10000000_00000000_00000000_00000000);

System.out.println("43的二进制表现:" + Integer.toBinaryString(43));//结果省略了前面的0
System.out.println("-43的二进制表现:" + Integer.toBinaryString(-43));

//下划线无意义,只是为了方便看,可以随意写
int a = 0b00000000_00000000_00000000_00000000_00101011;//0b表示为二进制,a相当于十进制的43
int a1 = 0b101011;//这也是十进制的43,只不过省略了上面的0
System.out.println("打印a的值:" + a);
System.out.println("打印a1的值:" + a1);

int b = 0b11111111_11111111_111111111_1010101;//二进制43取反加1,变成-43,下划线无意义
System.out.println("打印b的值:" + b);

int i = 0b00000001_00110010_01100111_10101101;//随手写了个十进制的24274861
System.out.println("打印10进制的i:" + i);
System.out.println("打印强制转换为short的i:" + (short)i);
System.out.println("打印short的二进制表示:" + Integer.toBinaryString((short)i));

结果:
int最大正数:2147483647
int最大正数二进制表示:1111111111111111111111111111111
int最小负数:-2147483648
int最小负数二进制表示:10000000000000000000000000000000
二进制定义打印int能表示的最大数:2147483647
二进制定义打印int能表示的最小数:-2147483648
43的二进制表现:101011
-43的二进制表现:11111111111111111111111111010101
打印a的值:43
打印a1的值:43
打印b的值:-43
打印10进制的i:20080557
打印强制转换为short的i:26541
打印short的二进制表示:110011110101101

int转为short时,直接截取地位16位进行转换

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • Java内置的进制转换
相关产品与服务
即时通信 IM
即时通信 IM(Instant Messaging)基于腾讯二十余年的 IM 技术积累,支持Android、iOS、Mac、Windows、Web、H5、小程序平台且跨终端互通,低代码 UI 组件助您30分钟集成单聊、群聊、关系链、消息漫游、群组管理、资料管理、直播弹幕和内容审核等能力。适用于直播互动、电商带货、客服咨询、社交沟通、在线课程、企业办公、互动游戏、医疗健康等场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档