原码,反码,补码
2021/12/17 6:23:57
本文主要是介绍原码,反码,补码,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
按位与
//计算机在运算的时候,都是按照补码方式运算的,所以要得到2的补码; 一,先得到2的补码 //(1)先得到2的源码: 00000000 00000000 00000000 00000010 二,得到2的补码 //(2)因为2是正数,由于正数是三码合一,所以源码,和补码相同 //(3)所以2的补码; 00000000 00000000 00000000 00000010 三.得到3的补码 //(4)得到3的源码: 00000000 00000000 00000000 00000110 四,得到3的补码 //(5)因为3是正数,由于正数是三码合一,所以源码,和补码相同 //(6)3的补码: 00000000 00000000 00000000 00000110 五,按位与& //(7)2的补码和3的补码按位 &, 位全是1结果才是1 // (8)2的补码: 00000000 00000000 00000000 00000010 // (9)3的补码: 00000000 00000000 00000000 00000110 //(10)按位& 00000000 00000000 00000000 00000010 得到了补码 六.把2&3按位与的结果转为源码 // 计算结果要看源码,所以把上面计算完的补码转为源码,由于正数是三码合一,所以源码,和补码相同 // 所以源码不变是:00000000 00000000 00000000 00000010 = 2 System.out.println(2&3); } }
负数按位取反
public class BitOpenator01 { public static void main(String[] args) { //一.先得到-2的源码: 10000000 00000000 00000000 00000010 //二.得到补码 // (1)计算的时候是按照补码计算的,所以要的到补码 // (2)由于-2是负数,要想得到-2的补码,要先得到-2的反码;通过反码+1得到补码 // (3)获取正数补码: // <1>正数的反码=正数的原码符号位不变,其他位取反 // <2>正数的补码=正数的反码+1 // (4)-2的反码计算: -2的原码符号位不变,其他位取反 11111111 11111111 11111111 11111101 // (5)-2的补码计算: 反码+1 11111111 11111111 11111111 11111110 // (6) -2的补码是: 11111111 11111111 11111111 11111110 //三.~-2操作: // (7) -2是负数,负数按位取反, 0变1,1变0 // (8) ~-2按位取反后的结果是补码: 00000000 00000000 00000000 00000001 // 四.原码的计算 // (8) 转换完的结果是正数,原码,反码,补码相同 00000000 00000000 00000000 00000001 = 1 System.out.println(~-2); //1 } }
正数按位取反
public class BitOpenator01 { public static void main(String[] args) { //一.先得到2的源码: 00000000 00000000 00000000 00000010 //二.得到补码 // (1)计算的时候是按照补码计算的,所以要的到补码,由于2是正数,补码,原码,反码相同 // (2)原码是: 00000000 00000000 00000000 00000010 //三.~2按位取反 // (3)得到取反运算后的补码 11111111 11111111 11111111 11111101 // (4)结果是一个负数,因为结果是负数,不是三码和合一,想看结果要转成原码 // 四.原码的计算 // (5)负数转原码 // <1>负数的反码=负数的补码-1 // <2>负数原码=负数反码,符号位不变,其他位取反 // (6)反码的计算=负数的补码-1 11111111 11111111 11111111 11111100 // (7)原码的计算=负数反码,符号位不变,其他位取反 10000000 00000000 00000000 00000011 = -3 System.out.println(~2); } }
这篇关于原码,反码,补码的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)
- 2024-05-30【Java】百万数据excel导出功能如何实现
- 2024-05-30我们小公司,哪像华为一样,用得上IPD(集成产品开发)?
- 2024-05-30java excel上传--poi
- 2024-05-30安装笔记本应用商店的pycharm,再安排pandas等模块,说是没有打包工具?
- 2024-05-29java11新特性
- 2024-05-29哪些无用敏捷指标正在破坏敏捷转型?
- 2024-05-29鸿蒙原生应用再新丁!新华社 入局鸿蒙
- 2024-05-29设计模式 之 迭代器模式(Iterator)