java中的原码、补码、反码

1.原码、反码、补码都是由符号位和其他位构成,符号位表示正负,0为正1为负,其余位表示数值的绝对值,因此正数的原码、反码、补码一致,0的反码、补码都是0。
2.负数的反码在原码的基础上符号位不变,其余位取反
3.负数的补码=反码+1
4.java中的数都是有符号的,计算机运算时都是以补码的方式来运算的(原码–>反码–>补码,计算),看结果时要看原码(补码–>反码–>原码)
转换思路:
原码—>反码:第1位不变,从第2位开始0变1,1变0
反码—>补码:从最低位开始进1,若当前位为0,则进1后停止进位,若当前位为1,则1变0后接着进位,直到遇到0,停止进位
(可以理解为携带的1是否上交出去,只有遇到0才能交出去,遇到1则上交失败,将当前为变为0后继续寻找下一个位置)

public static String originalToComplement(String original) 
{
//取符号位char signBit=original.chatAt(0);StringBuilder fanma = new StringBuilder();StringBuilder buma = new StringBuilder();
if signBit=='0':{fanma=originalbuma=original}
else:
{	buma=fanma//反码的基础上,其余位取反for (int i = 1; i < original.length(); i++) {fanma.append(original.charAt(i) == '0' ? '1' : '0');}// 反码+1得到补码int carry = 1;//从最低位开始,遇到1,则把1变0,对下一位+1,若下一位为0,把0变为1,停止进位for (int i = buma.length() - 1; i >= 0; i--) {char bit = buma.charAt(i);if (bit == '0' && carry == 1) {buma.setCharAt(i, '1');carry = 0;} else if (bit == '1' && carry == 1) {buma.setCharAt(i, '0');}}
}
}

计算2&3,2|3,2,2^3,(-2)
获取原码:
2:00000000 00000000 00000000 00000010
3:00000000 00000000 00000000 00000011
-2: 10000000 00000000 00000000 00000010
获取反码:
2:00000000 00000000 00000000 00000010
3:00000000 00000000 00000000 00000011
-2: 11111111 11111111 11111111 11111101
获取补码:
2:00000000 00000000 00000000 00000010
3:00000000 00000000 00000000 00000011
-2: 11111111 11111111 11111111 11111110
补码进行运算后转变为原码得到结果:
2&3=00000000 00000000 00000000 00000010(按位与&,全1为1) ----->原码00000000 00000000 00000000 00000010---->结果 2
2|3 = 00000000 00000000 00000000 00000011(按位或|,有1为1) ----->原码 00000000 00000000 00000000 00000011---->结果 3
2^3= 00000000 00000000 00000000 00000001(按位异或,异为1,同为0) ----->原码00000000 00000000 00000000 00000001---->结果 1
~2 = 11111111 11111111 11111111 11111101(按位取反,0变1,1变0) ----->原码10000000 00000000 00000000 00000011---->结果 -3
~(-2)=00000000 00000000 00000000 00000001(补码)----->原码00000000 00000000 00000000 00000001---->结果 1

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

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

相关文章

Python社会经济 | 怀特的异方差一致估计量

&#x1f3af;要点 &#x1f3af;算法​和模型底层数学及代码&#xff1a;&#x1f58a;线性代数应用&#xff08;主成分分析&#xff09;&#xff1a;降维、投影&#xff08;用于求解线性系统&#xff09;和二次形式&#xff08;用于优化&#xff09;| &#x1f58a;奇值分解…

描述一下 Array.forEach() 循环和 Array.map() 方法之间的主要区别

Array.forEach() 和 Array.map() 都是 JavaScript 数组中常用的方法,但它们之间有一些重要的区别: 返回值:forEach()&#xff1a;没有返回值,它只是对数组中的每个元素执行提供的函数。map()&#xff1a;返回一个新的数组,其元素是通过对原数组的每个元素执行提供的函数后的结…

nestjs 全栈进阶--拦截器

视频教程 23_nestjs中的拦截器_哔哩哔哩_bilibili 1. rxjs 介绍 RxJS&#xff08;Reactive Extensions for JavaScript&#xff09;是一款专为JavaScript和TypeScript设计的响应式编程库&#xff0c;它遵循ReactiveX规范&#xff0c;提供了一套强大的工具和API&#xff0c;用…

vue 将图片url转base64

<img :src"imgList[0]" width"600" error"handleImageError" alt"0" load"onloadImg" />//当图片加载完成时&#xff0c;将图片url转成base64onloadImg(event) {this.urlTobase64(event.target.src, event.target.alt…

Mac 使用Docker安装Elasticsearch、Kibana

安装ElasticSearch 通过docker安装es docker pull elasticsearch:8.6.2 在本地创建elasticsearch.yml文件 mkdir /Users/ky/Documents/learn/es/elasticsearch.yml 编辑yml文件内容 http: host: 0.0.0.0 xpack.security.enabled: false xpack.security.enrollment.enabled: t…

Scala 练习一 将Mysql表数据导入HBase

Scala 练习一 将Mysql表数据导入HBase 续第一篇&#xff1a;Java代码将Mysql表数据导入HBase表 源码仓库地址&#xff1a;https://gitee.com/leaf-domain/data-to-hbase 一、整体介绍 HBase特质 连接HBase, 创建HBase执行对象 初始化配置信息&#xff1a;多条(hbase.zookeeper.…

ARM学习(28)NXP 双coreMCU IMX1160学习

笔者最近接触到一块IMXRT1160的双core板子&#xff0c;特依次来记录学习一下 1、IMXRT1160 板子介绍 介绍一下NXP的Demo板子&#xff0c;是一个双core的板子&#xff0c;Cortex-M7和Cortex-M4&#xff0c;总计1MB的RAM空间&#xff0c;256KB的ROM空间&#xff0c;提供了丰富的…

excel工资表基本操作

1.基本操作 1)新建工作表:点击下方田可以新建一张工作表。 2)切换工作表:点击工作表名称可以切换工作表。o 3)如果我们有很多张工作表的话&#xff0c;在切换工作表处右键可选择你所需要 腿除 叫打开的工作表。4)插入删除:随意选择一张工作表右键&#xff0c;可以看到右圩、 名…

c++ 录制电脑屏幕桌面

1&#xff1a;调用windows GDI bool WindowsGDI::init(int idx) {mHWinSta GetProcessWindowStation();if (!mHWinSta) {LOGE("%s GetProcessWindowStation error", getCapture());return false;}mHWnd GetDesktopWindow();//GetActiveWindow();mWndHDC GetDC(mH…

UE5 插件第三方库的build写法记录

// Copyright Epic Games, Inc. All Rights Reserved.using UnrealBuildTool; using System.IO;//方法为创建第三方库插件,CoustemOpenCV为插件名称 public class CoustemOpenCV : ModuleRules {public CoustemOpenCV(ReadOnlyTargetRules Target) : base(Target){PCHUsage = …

Window10磁盘的分盘和合并

注意&#xff1a; 当我们c盘不够大需要扩大磁盘空间时&#xff0c;当c盘后面没有未划分的磁盘时候&#xff0c;我们是无法进行扩充c盘的&#xff0c;此时&#xff0c;我们可以先删除后面一个磁盘&#xff0c;再进行扩大。 如下&#xff1a;c盘后没有未分配的空间&#xff0c;…

nginx优化和重写功能rewrite

一、nginx优化 1.防盗链 防盗链基于客户端携带的referer实现&#xff0c;referer是记录打开一个页面之前记录是从哪个页面跳转过来的标记信息&#xff0c;如果别人只链接了自己网站图片或某个单独的资源&#xff0c;而不是打开了网站的整个页面&#xff0c;这就是盗链&#x…

【项目管理常见问题大揭秘】每个管理者都要Get的「五维思维」~

走上管理岗☸要懂得五维思维 &#x1f4bc;自我管理——做自己的CEO 严于律己&#xff1a;严格要求自己&#xff0c;注重个人品牌建设 宽以待人&#xff1a;接纳不同观点&#xff0c;提升团队凝聚力 尊重事实&#xff1a;鼓励团队成员发挥优势&#xff0c;避免负面评价 坚守诚…

求助:西莫电子期刊 交流互助 传递

点击上方 “机械电气电机杂谈 ” → 点击右上角“...” → 点选“设为星标 ★”&#xff0c;为加上机械电气电机杂谈星标&#xff0c;以后找夏老师就方便啦&#xff01;你的星标就是我更新动力&#xff0c;星标越多&#xff0c;更新越快&#xff0c;干货越多&#xff01; 关注…

Java面经——SpringCloud微服务

SpringCloud SpringCloud的五大组件 注册中心网关远程调用负载均衡熔断降级 谈谈你对SpringCloud的理解 SpringCloud是为了解决微服务架构中出现的一系列服务治理难题的而提出的一套规范&#xff0c;统一了标准。降低了微服务架构的开发难度。有了 Spring Cloud 这样的技术生…

【CSS】object-fit 和 object-position 属性详解

目录 object-fit属性属性值&#xff1a;使用场景&#xff1a; object-position 属性语法&#xff1a;例如&#xff1a;使用场景&#xff1a; object-fit和object-position是CSS属性&#xff0c;用于控制图像或视频在其容器中的适应和定位方式。 object-fit属性 属性值&#xf…

【android 9】【input】【8.发送按键事件2——InputDispatcher线程】

系列文章目录 本人系列文章-CSDN博客 目录 系列文章目录 1.简介 1.1流程介绍 1.2 时序图 2.普通按键消息发送部分源码分析&#xff08;按键按下事件&#xff09; 2.1 开机后分发线程阻塞的地方 2.2 InputDispatcher::dispatchOnceInnerLocked 2.3 InputDispatcher::disp…

使用C语言实现贪吃蛇(超详细)

目录 实现贪吃蛇我们要知道哪些&#xff1f; Easyx图形库 Easyx的安装 游戏思路 游戏实现 头文件的使用 ​编辑和食物以及控制方向的初始化 对于坐标的实现&#xff1a; 食物颜色的实现&#xff1a; 游戏数据的初始化 加载音乐 图形窗口的设置&#xff1a; 蛇身节数…

GEE案例——归一化差异水体指数丰水期、枯水期的水域面积和水深分析(青海湖为例)

简介 水深反演是指利用遥感技术从航空或卫星平台上获取的数据来推断水体的深度信息。这种技术在海洋学、湖泊和河流的科学研究与管理中非常重要。以下是几种常用的水深反演方法: 1. **光学遥感反演**: - 基于水体颜色和透明度的变化与水深的关系,使用光学遥感影像(如L…

【动手学深度学习】多层感知机之暂退法问题研究详情

目录 &#x1f30a;问题研究1 &#x1f31e;问题研究2 &#x1f332;问题研究3 &#x1f30d;问题研究4 &#x1f333;问题研究5 &#x1f30c;问题研究6 &#x1f30a;问题研究1 如果更改第一层和第二层的暂退法概率&#xff0c;会发生什么情况&#xff1f;具体地说&am…