本站业务范围:1、PC端软件开发、网站开发 2、移动端APP、网站、微信接口、微商城开发 3、视频教程、课程设计和辅导 4、单片机开发 5、串口通讯调试
 当前位置:文章中心 >> Java_Jsp_Jdk_eclipse_tomcat
立即购买视频教程 二进制(原码、反码、补码)
夜鹰教程网 来源:www.yyjcw.com 日期:2019-1-6 18:54:56
二进制(原码、反码、补码)

这篇文章不能解决你的问题?我们还有相关视频教程云课堂 全套前端开发工程师培训课程

微信号:yyjcw10000 QQ:1416759661  远程协助需要加QQ!

业务范围:视频教程|程序开发|在线解答|Demo制作|远程调试| 点击查看相关的视频教程

技术范围:全端开发/前端开发/webapp/web服务/接口开发/单片机/C#/java/node/sql server/mysql/mongodb/android/。 



一、二进制(原码、反码、补码)

二进制的最高位是符号位(“0”代表正数,“1”代表负数);

Java中没有无符号数;

计算机以整数的补码进行运算;

1.  原码:将一个整数转换成二进制表示

以 int 类型为例,int类型占4个字节、共32位。


例如,2 的原码为:00000000 00000000 00000000 00000010


        -2的原码为:10000000 00000000 00000000 00000010


 


2. 反码

正数的反码:与原码相同


负数的反码:原码的符号位不变,其他位取反


例如,-2 的反码为:11111111 11111111 11111111 11111101


 


3. 补码

正数的补码:与原码相同


负数的补码:反码+1


例如,-2 的补码为:01111111 11111111 11111111 11111110


 


二、位运算

Java中有4个位运算符:


1. 按位与 &:两位都为1,结果为1

  例如,2&3 = 2


  2  的原码为: 00000000 00000000 00000000 00000010


  3  的原码为: 00000000 00000000 00000000 00000011


  2&3 原码为: 00000000 00000000 00000000 00000010 = 2


2. 按位或 |:至少一位为1,结果为1

  例如,2|3 = 3


  2  的原码为: 00000000 00000000 00000000 00000010


  3  的原码为: 00000000 00000000 00000000 00000011


  2|3   原码为: 00000000 00000000 00000000 00000011 = 3


3. 按位异或 ^:两位一个为1、一个为0,结果为1

  例如,2|3 = 3


  2  的原码为: 00000000 00000000 00000000 00000010


  3  的原码为: 00000000 00000000 00000000 00000011


  2^3 原码为: 00000000 00000000 00000000 00000001 = 1


4. 按位取反 ~:0变成1、1变成0 

  例如,~2 = -3


  对2的原码取反:11111111 11111111 11111111 11111101  (取反后结果的补码,也就是-3的补码。我们需要从补码推出原码,才能得到-3)


      转换成反码:    11111111 11111111 11111111 11111100 (补码减1)


  转换成原码:    10000000 00000000 00000000 00000011 =-3 (符号为不变,其他位取反)


 


 

总结

正数的原码、反码、补码都一样;

负数的反码 = 原码的符号位不变,其他位取反;

负数的补码 = 反码+1;

0的原码、反码、补码都是0;

计算机以补码进行运算;

取反不同于反码;


复制链接 网友评论 收藏本文 关闭此页
上一条: short、int、long、float、double…  下一条: python时间模块详解
夜鹰教程网成立于2008年,目前已经运营了将近 13 年,发布了大量关于 html5/css3/C#/asp.net/java/python/nodejs/mongodb/sql server/android/javascript/mysql/mvc/easyui/vue/echarts原创教程。 我们一直都在坚持的是:认证负责、一丝不苟、以工匠的精神来打磨每一套教程,让读者感受到作者的用心。我们默默投入的时间,确保每一套教程都是一件作品,而不是呆板的文字和视频! 目前我们推出在线辅导班试运营,模式为一对一辅导,教学工具为QQ。我们的辅导学科包括 java 、android原生开发、webapp开发、商城开发、C#和asp.net开发,winform和物联网开发、web前端开发,但不仅限于此。 普通班针对的是国内学员,例如想打好基础的大学生、想转行的有志青年、想深入学习的程序员、想开发软件的初学者或者业余爱好者等。 就业办针对即将毕业上岗的大四学生,或者打算转行的初级开发工程师。 留学生班针对的是在欧美、加拿大、澳洲、日本、韩国、新加坡等地留学的中国学子,目的是让大家熟练地掌握编程技能,按时完成老师布置的作业,并能顺利地通过考试。 详细咨询QQ:1416759661   夜鹰教程网  基于角色的权限管理系统(c-s/b-s)。
  夜鹰教程网  基于nodejs的聊天室开发视频教程
  夜鹰教程网  Git分布式版本管理视频教程
  夜鹰教程网  MVC+EasyUI视频教程
  夜鹰教程网  在线考试系统视频教程
  夜鹰教程网  MongoDB视频教程。
  夜鹰教程网 Canvas视频教程
  夜鹰教程网 报表开发视频教程
  推荐教程/优惠活动

  热门服务/教程目录

  夜鹰教程网  新手必看,详细又全面。
  夜鹰教程网  购买教程  夜鹰教程网  在线支付-方便
  夜鹰教程网  担保交易-快捷安全   夜鹰教程网  闪电发货
  夜鹰教程网  电话和QQ随时可以联系我们。
  夜鹰教程网 不会的功能都可以找我们,按工作量收费。

客服电话:153 9760 0032

购买教程QQ:1416759661  
  热点推荐
初学教程:Java Socket网络编程浅…
Java随机数总结
java读取文本文件内容并获取文件大…
字节流和字符流Java
java常用图片读写程序
怎样成为一个优秀的Java程序员
C++程序员转Java容易吗?难点在哪…
思科培训与华为培训在教材和内容方…
Java注释的使用和定义
使用 Java 实现 Comet 风格的 Web…
利用Java实现zip压缩/解压缩
Java Web三层架构的配置详解
Java Socket编程之我见
使用 Java 实现 Comet 风格的 Web…
两种J2ME网络编程的方法之一
  尊贵服务
夜鹰教程网 承接业务:软件开发 网站开发 网页设计 .Net+C#+VS2008+MSsql+Jquery+ExtJs全套高清完整版视频教程
  最近更新
short、int、long、float、double…
二进制(原码、反码、补码)
python时间模块详解
java 解决split分割空值不能得到的…
如何打开eclipse安卓开发代码提示…
php实现大文件断点续传功能
java实现断点续传功能
Windows Server 2016新功能
MyEclipse 8.5 汉化方法
jquery实现无刷新分页
什么是JSON?
什么是回调函数
jQuery 1.7下载
jquery加载XML文档
什么是MVC(三层架构)
  工具下载  需要远程协助? 

sql2008视频教程 c#视频教程

VIP服务:如果您的某个功能不会做,可以加我们QQ,给你做DEMO!

JQUERY  Asp.net教程

MVC视频教程  vs2012
.NET+sql开发
手机:15397600032 C#视频教程下载
微信小程序 vue.js高级实例视频教程

教程咨询QQ:1416759661


这篇文章不能解决你的问题?我们还有相关视频教程云课堂 全套前端开发工程师培训课程

微信号:yyjcw10000 QQ:1416759661  远程协助需要加QQ!

业务范围:视频教程|程序开发|在线解答|Demo制作|远程调试| 点击查看相关的视频教程

技术范围:全端开发/前端开发/webapp/web服务/接口开发/单片机/C#/java/node/sql server/mysql/mongodb/android/。 



关于我们 | 购买教程 | 网站建设 | 技术辅导 | 常见问题 | 联系我们 | 友情链接

夜鹰教程网 版权所有 www.yyjcw.com All rights reserved 备案号:蜀ICP备08011740号3