原码补码反码与位操作

news/2025/9/22 20:08:12/文章来源:https://www.cnblogs.com/clo3o/p/19105946

今天搜索互联网那个引擎了解了原码补码反码的相关概念
原码是最直观的编码方式,用最高位表示符号(0为正,1为负),其余位表示数值的绝对值
正数的反码与原码相同;负数的反码是对其原码的数值位取反(符号位不变)
正数的补码与原码相同;负数的补码是其反码加1
Java中的整数采用补码表示法
public class Demo{
public static void main(String[] args) {
// 定义测试用的正数和负数
int y = 13; // 二进制: 00001101
int b = -13; // 二进制: 11110011 (补码表示)

        // 打印原始数值的二进制表示System.out.println("原始数值:");printBinary("正数13", y);printBinary("负数-13", b);System.out.println();// 位与操作 (&)System.out.println("位与操作 (&):");int andResult = y & b;printOperation("13 & -13", andResult, y, b, "&");System.out.println();// 位或操作 (|)System.out.println("位或操作 (|):");int orResult = y | b;printOperation("13 | -13", orResult, y, b, "|");System.out.println();// 位异或操作 (^)System.out.println("位异或操作 (^):");int xorResult = y ^ b;printOperation("13 ^ -13", xorResult, y, b, "^");System.out.println();// 位非操作 (~)System.out.println("位非操作 (~):");int noty = ~y;int notb = ~b;printOperation("~13", noty, y);printOperation("~-13", notb, b);System.out.println();// 左移操作 (<<)System.out.println("左移操作 (<<):");int leftShiftPos = y << 2;int leftShiftNeg = b << 2;printShiftOperation("13 << 2", leftShiftPos, y, "<<", 2);printShiftOperation("-13 << 2", leftShiftNeg, b, "<<", 2);System.out.println();// 算术右移操作 (>>)System.out.println("算术右移操作 (>>):");int rightShiftPos = y >> 2;int rightShiftNeg = b >> 2;printShiftOperation("13 >> 2", rightShiftPos, y, ">>", 2);printShiftOperation("-13 >> 2", rightShiftNeg, b, ">>", 2);System.out.println();// 逻辑右移操作 (>>>)System.out.println("逻辑右移操作 (>>>):");int unsignedRightShiftPos = y >>> 2;int unsignedRightShiftNeg = b >>> 2;printShiftOperation("13 >>> 2", unsignedRightShiftPos, y, ">>>", 2);printShiftOperation("-13 >>> 2", unsignedRightShiftNeg, b, ">>>", 2);}// 打印二进制表示的辅助方法public static void printBinary(String label, int num) {String binary = String.format("%32s", Integer.toBinaryString(num)).replace(' ', '0');System.out.println(label + " (十进制:" + num + "): " + binary);}// 打印位操作结果的辅助方法public static void printOperation(String operation, int result, int operand1, int operand2, String operator) {System.out.println(operation + " = " + result);System.out.print("二进制运算: ");printBinaryShort(operand1);System.out.print(" " + operator + " ");printBinaryShort(operand2);System.out.print(" = ");printBinaryShort(result);System.out.println("\n");}// 打印位操作结果的辅助方法public static void printOperation(String operation, int result, int operand) {System.out.println(operation + " = " + result);System.out.print("二进制运算: " + operation.charAt(0) + " ");printBinaryShort(operand);System.out.print(" = ");printBinaryShort(result);System.out.println("\n");}// 打印移位操作结果的辅助方法public static void printShiftOperation(String operation, int result, int operand, String shiftOp, int shift) {System.out.println(operation + " = " + result);System.out.print("二进制运算: ");printBinaryShort(operand);System.out.print(" " + shiftOp + " " + shift + " = ");printBinaryShort(result);System.out.println("\n");}// 简短格式打印二进制public static void printBinaryShort(int num) {String binary = Integer.toBinaryString(num);if (binary.length() > 8) {binary = binary.substring(binary.length() - 8);}System.out.print(binary);}

}
手工计算结果-13的逻辑右移和算数右移与java表示结果不一样
经过搜索了解手工8位简算与java32位补码运算完全计算结果不一样,java的结算结果是正确的
我学会了要在分析位运算时,必须考虑数据类型的完整位数(int为32位),简单的8位模型会导致理解偏差。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/910223.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何安装 SQLPro Studio for Mac?v2024.21.dmg 文件安装步骤详解(附安装包)

如何安装 SQLPro Studio for Mac?v2024.21.dmg 文件安装步骤详解(附安装包)​一、安装前准备​确保你下的是靠谱的文件​ SQLPro Studio for Mac v2024.21.dmg​ 应该是一个 ​DMG 格式的安装包,安装包下载:https…

全新正版营销网站怎么给钓鱼网站做防红

计算函数的变分是指在变分法中寻找函数的极值。变分法是一种数学方法&#xff0c;用于求解函数或泛函的极值问题。在物理学、工程学和数学的最优化问题中&#xff0c;变分法是寻找函数使得某个泛函&#xff08;函数的函数&#xff09;达到极值的过程。 在数学上&#xff0c;泛…

网站建设方案平台架构做网站需要备案吗

2017年2月8日&#xff0c;那是一个阴天。为了完成高翔博士的《一起做RGB-D SLAM》教程&#xff0c;我在 Ubuntu 14.04 安装 g2o。遇到困难&#xff0c;怎奈我眼瞎&#xff0c;找错了方向&#xff0c;浪费时间&#xff0c;没有成功安装。 问题如下&#xff08;跳到最后一个问题描…

郑州炫彩网站建设万网网站建设流程

IO流IO流使用场景 什么是IO流常用的IO流字节流字符流缓冲流 BIO、NIO、AIO的区别 IO流 IO流使用场景 如果操作的是纯文本文件&#xff0c;优先使用字符流如果操作的是图片、视频、音频等二进制文件。优先使用字节流如果不确定文件类型&#xff0c;优先使用字节流。字节流是万能…

献县网站建设公司wordpress主题更新失败

2023年8月18日&#xff0c;周五上午 今天在B站看Qt教学视频的时候遇到了 目录 语法和typedef或using结合我的总结 语法 返回类型 (*指针变量名)(参数列表)以下是一些示例来说明如何声明不同类型的函数指针&#xff1a; 声明一个不接受任何参数且返回void的函数指针&#xf…

深圳外贸网站商城相片制作图片

避免索引失效原则(二)注&#xff1a;继上一篇文章继续讲解&#xff1a;避免索引失效原则(一)https://www.cnblogs.com/StanleyBlogs/p/10482048.html#4195062作者 &#xff1a; Stanley 罗昊【转载请注明出处和署名&#xff0c;谢谢&#xff01;】体验SQL优化中的概率情况在上一…

带有互动的网站开发网页设计素材 模板材料

安卓自定义属性主要有3个步骤 在values文件夹新建attrs.xml文件中声明属性&#xff0c;包括属性名和格式&#xff0c;format常用属性有string ,integer,reference等 <?xml version"1.0" encoding"utf-8"?> <resources><!-- 声明属性集…

建设网站 (公司)学做网站要代码

苹果的应用讲究用户体验 有的时候仔细想想 的确&#xff0c;很多细节决定了用户体验 比如说惯性拖动 可以说之前没有任何一家厂商能把触摸惯性拖动做的像苹果的UI那么流畅 Cocos2D中实现能够惯性拖动的选择界面 完成的效果&#xff1a; 制作一个简单的图层&#xff0c;通过传入…

服装网站模板游戏开发模拟器

简介&#xff1a; 优酷视频内容数据天然呈现巨大的网络结构&#xff0c;各类数据实体连接形成了数十亿顶点和百亿条边的数据量&#xff0c;面对巨大的数据量&#xff0c;传统关系型数据库往往难以处理和管理&#xff0c;图数据结构更加贴合优酷的业务场景&#xff0c;图组织使用…

特殊句式

与词汇相比,文言语法变化不大,只是几种特殊句式的表示方法与现代汉语不同,下面分别加以说明: 判断句式 被动句式 倒装句式 省略句式 疑问句式 否定句式一、 判断句式文言文判断句最显著的特点就是基本上不用…

9月22日

CMD:利用命令行的方式操作计算机 打开CMD:win+R 输入CMD:cmd 常用CMD:1.盘符名称+冒号;盘符切换 2.dir:查看当前路径下的内容 3.cd目录:进入单极目录(按下Tabe) 4.cd..:回退到上一级 5.cd目录1\目录2\....:进入目录…

企业网站搭建 网络活动策划农业建设公司网站

摘要&#xff1a;在物流和制造业中&#xff0c;开发一套高效的条形码与二维码识别系统显得尤为关键。本博文深入探讨了如何利用深度学习技术打造出一套先进的条形码及二维码检测系统&#xff0c;并且提供了一套完整的实施方案。该系统搭载了性能卓越的YOLOv8算法&#xff0c;并…

全flash网站制作网站要求

前面章节中,对 set 容器做了详细的讲解。回忆一下,set 容器具有以下几个特性: 不再以键值对的方式存储数据,因为 set 容器专门用于存储键和值相等的键值对,因此该容器中真正存储的是各个键值对的值(value);set 容器在存储数据时,会根据各元素值的大小对存储的元素进行…

张家口企业网站建设优秀策划设计网站

outline在一个声明中设置所有的轮廓属性。outline:颜色&#xff08;outline-line&#xff09;样式&#xff08;outline-style&#xff09;宽度&#xff08;outline-width&#xff09; outline-offset 属性对轮廓进行偏移&#xff0c;并在边框边缘进行绘制。 轮廓在两方面与边框…

北京医疗网站建设公司排名浙江网站seo

今天我们将要谈论一个非常重要的话题&#xff1a;Python 编程中的安全问题。作为一门广受欢迎的编程语言&#xff0c;Python 已经成为了许多开发者、计算机专业学生以及打工人的必备技能。 原文链接食用更佳 危险边缘&#xff1a;揭示 Python 编程中易被忽视的四个安全问题 然…

民治网站设计圳网站建设公司海安环评在哪个网站做

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

网站建设内部优化南昌网站优化公司

点击上方蓝字关注我&#xff0c;了解更多咨询c语言中是代表两个变量相加&#xff0c;并将答案记录在左边的变量里。比如xy实际代表的表达式为&#xff1a;xxy。这是c语言为了语言的简洁性推出的组合运算。常见的运算符都可以这样组合运算。一、源码演示&#xff1a;二、输出结果…

夺宝网站还可以做吗网站建设氺首选金手指13

Nginx反向代理加载速度慢可能由多种原因引起&#xff0c;以下是一些可能的解决方法&#xff1a; 1&#xff0c;网络延迟&#xff1a; 检查目标服务器的网络状况&#xff0c;确保其网络连接正常。如果目标服务器位于不同的地理位置&#xff0c;可能会有较大的网络延迟。考虑使用…