关于源码,反码,补码(正数--负数)---------(-128)自己的理解

以一个字节为例

1、无符号位,一个字节可以存放0~255共256个数字;有符号位存放-128~127共256个数字;

2、无符号全都表示为正数;有符号位则首位表示正负数,正数首位为0,负数首位为1(因此在判断一个数为正还是负时会先看首位,如果为正直接算,如果为负还要经过求反码、源码)

以下以默认的有符号位示例

3、首先,要知道计算机中正数用源码表示,负数用其正数的补码表示;补码为源码的反码加一(如-1即为1的反码加一表示)

  1:0000 0001

   -1:1111 1111

  从1到-1的计算过程:0000 0001  取反码为  1111 1110

             1111 1110   +1为补码  1111 1111

  因此-1表示为 1111 1111

4、如果给你一个负数,要求你用二进制表示;

  第一:先判断这个负数是否溢出(不管正负都要判断),如果溢出就不能表示,如果要强制转换就会造成数据不一致,那么原始数据就会丢失;

     如果不溢出,就下一步;

  第二:先用二进制表示出其对应的绝对值(正数)的二进制源码;

  第三:根据源码求反码,源码取反(~源码);

  第四:根据反码求补码表示负数,反码+1;

5、如果给你一个负数的二进制,求该二进制表示的负数为几;

  第一:先求补码,该负数的二进制-1;

  第二:根据补码求源码,补码取反(~补码);

  第三:将源码算出代表几;

 

关于牛客网题目的理解(正确答案为 B)

前言:不管什么都是按照上诉4、5计算;

  • 比如4,当正数溢出时,他还是会把源码先(扩容后:如原本只装1个字节,但是装不下就扩用2个字节表示)表示出来,然后从低位截取再判断正负再进行计算;
  • 当负数溢出时,他还是会将源码表示出来,然后根据规则算出补码,最后截取后存储。由于截取后数值就变啦,因此所表示的就不是原来的数了,至于表示几自己根据规则再算回去,有时甚至会变为正数就是这个原因;

 

因此这道题我是这么做的:

因为a为short类型,一共16位,表示128为:0000 0000 1000 0000

b为byte类型,一共8位,将a强制转换后为:1000 0000

为什么1000 0000表示-128呢,我自己的理解是:

  1. 首先首位为1,则表示为负数 ,负数用补码表示,所以1000 0000为补码
  2. 补码-1为反码,即0111 1111
  3. 反码取反,为1000 0000
  4. 1000 0000表示的的正值为27=128(这样既符合正负数表示方法,数学数值上也说得通,包括16位的10000000 00000000表示-32768等等也是这个道理);所以1000 0000表示-128

总结:因此我认为通过负数二进制求其表示的数时,最后得出源码后,应该是求源码表示的正值;而1000 0000在byte中比较特别,因为它的补码与源码相同,所以最后得出源码时会比较懵逼,但如果记住这时该求正值就行了;以后自己按照这个计算方法计算便可以,方便好记

转载于:https://www.cnblogs.com/qiong2017/p/7666156.html

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

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

相关文章

英特尔x722网卡驱动_产品详情 | 从核心到边缘,英特尔加速5G网络基础设施建设...

英特尔近期宣布推出无可比拟的5G基础设施芯片产品组合,包括一款面向无线基站的10纳米片上系统(SoC)英特尔凌动P5900,和一款面向5G网络处理的结构化ASIC,一款针对5G网络优化、提供基于GPS的高精度网络服务同步功能的以太网适配器。此外&#x…

canvas离屏技术与放大镜实现

教程所示图片使用的是 github 仓库图片,网速过慢的朋友请移步>>> (原文)canvas 离屏技术与放大镜实现。 更多讨论或者错误提交,也请移步。 利用canvas除了可以实现滤镜,还可以利用离屏技术放大镜功能。为了方…

使用Ajax的Spring MVC REST调用

这篇文章提供了对Spring MVC Web应用程序的REST调用的简单示例。 它基于在Spring MVC上下文示例中使用Spring MVC服务静态资源和使用Ajax获取JSON 。 该代码可在GitHub的Spring-REST-With-Ajax目录中找到。 主页 我们的主页包含与执行Ajax调用的Javascript函数链接的四个按钮…

linux7系统如何配置网卡,Linux 7 配置网卡(nmcli)

操作系统版本:[rootcjcos01 network-scripts]# cat /etc/redhat-releaseRed Hat Enterprise Linux Server release 7.5 (Maipo)查看网卡、IP等信息:[rootcjcos01 ~]# ifconfigenp0s3: flags4163 mtu 1500inet 192.168.1.90 netmask 255.255.255.0 bro…

学以致用深入浅出数字信号处理 pdf_数字阵列雷达--相控阵专题讲座之三

数字阵列雷达-相控阵专题讲座之三https://www.zhihu.com/video/1218562626877583360从名词上看,数字阵列雷达,肯定是阵列雷达了,那么数字阵列与传统的相控阵雷达又有什么区别呢?传统的相控阵雷达,是依靠移相器、衰减器…

Ubuntu中右击出现终端

1 root用户 $sudo apt-get install nautilus-open-terminal 2重启 3ok 转载于:https://www.cnblogs.com/lanjianhappy/p/6761599.html

使用bootstrap的dropdown部件时报错:error:Bootstrap dropdown require Popper.js

前言:前端小白一枚,刚注册博客,先发个学习过程中新碰到小问题试试水吧~ 摘要:最近在学习bootstrap,偶然碰到了一个小问题,bootstrap网站也没有做过多的解释,今天分享给大家。 问题描述&#x…

C#中的三层

三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:界面层(User Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data access layer)。区分层次的…

研究僵局–第3部分

在本系列的前两个博客( 第1部分和第2部分)中 ,我演示了如何创建一段死锁的不良代码,然后使用该代码展示了进行线程转储的三种方式。 在这个博客中,我将分析线程转储以找出错误的原因。 下面的讨论同时涉及本系列第1部…

qq2009显ip版怎么用_毛孔粗大怎么破?用对方法,轻松改善显皮肤嫩滑

脸上毛孔粗大怎么破?超级烦恼尤其是一到秋季脸上经常油腻腻的为什么会毛孔粗大呢?毛孔粗大怎么破?用对方法,轻松改善显皮肤嫩滑 当皮肤老旧角质积聚越多,会使肌肤变厚、变粗糙,毛孔变粗大,肌肤也…

hello程序的运行过程-从计算机系统角度

hello程序的运行过程-从计算机系统角度 1、gcc编译器驱动程序读取源程序文件hello.c,并将它翻译成一个可执行目标文件hello。翻译过程分为四个阶段:预处理阶段,编译阶段,汇编阶段,链接阶段。 2、初始时,she…

Eclipse对类固醇的重构

在上一篇有关常见Java违规的文章中 ,我列出了Java开发人员容易犯的一系列错误。 在重构Java项目以解决这些违规问题的同时,我广泛使用了Eclipse的重构功能来快速更改代码。 下面是这种重构技术的汇编。 1.在块级语句周围添加花括号 用{curly braces}包装…

微服务发展的历史_“美丽新羌 光照未来” 新羌社区开展微视频宣传片拍摄活动...

见圳客户端、深圳新闻网讯(记者 王志明 通讯员 甘力宇)为记录新羌社区的历史变迁,弘扬新羌人与时俱进、开拓进取的创新精神,宣传社区党委、社区一线工作者及社区居民的感人事迹和精神,展现深圳社区发展新风貌,2020年10月&#xff…

linux中扫描仪驱动程序,VueScan For Linux通用扫描仪驱动下载_VueScan For Linux通用扫描仪驱动官方下载-太平洋下载中心...

VueScan For Linux通用扫描仪驱动是一款提供 Linux 使用的图片扫描工具,它具有各种高级硬件能力使用非常广泛的的扫描仪软件,支持EPSon、HP、Nikon 和Canon 品牌的扫描仪设备,具有优良的色彩保真度和色彩平衡,可以让用户比平板扫描…

HTML head 头部中的各类标签

HTML <head> 头部 <head> 元素包含了所有的头部标签元素。在 <head>元素中你可以插入脚本&#xff08;scripts&#xff09;, 样式文件&#xff08;CSS&#xff09;&#xff0c;及各种meta信息。 可以添加在头部区域的元素标签为: <title>, <style&g…

CSS变量(自定义属性)实践指南

本文翻译自&#xff1a;https://www.sitepoint.com/practical-guide-css-variables-custom-properties/ 转载请注明出处&#xff1a;葡萄城官网&#xff0c;葡萄城为开发者提供专业的开发工具、解决方案和服务&#xff0c;赋能开发者。 Sass和Less这样的预处理器&#xff0c;让…

ffmpeg-win32-v3.2.4 下载_MVBOX下载|MVBOX 7.1.0.4官方版

还是要强调一句&#xff0c;现在市面上很多盗版或者免费的软件&#xff0c;都给一些黑客留下了暗门&#xff0c;所以大家还是支持正版比较好&#xff0c;不要贪图便宜使用盗版软件造成不好的后果。MVBOX播放器功能介绍1、在线卡拉OK2、虚拟摄像头3、画面调色板4、摄像头抠像5、…

饿了么商家电脑版_饿了么企业版荣膺“2020中国十大影响力人力资源品牌”大奖...

11月6日&#xff0c;由MeetHR GROUP主办的2020大中华地区HRVP高峰论坛在上海落幕。饿了么企业版凭借自身产品在人力资源管理与服务方面的创新实践&#xff0c;荣获“2020 中国十大影响力人力资源品牌(薪酬福利类)”殊荣。本次评选&#xff0c;据主办方介绍&#xff0c;旨在激励…

navicat连接linux远程数据库,使用Navicat forMySql远程连接Linux 系统上的数据库

使用Navicat for MySql远程连接Linux 系统上的数据库解决mysql"Access denied for userrootIP地址"问题1.问题说明&#xff1a;在MYSQL 中&#xff0c;用远程软件登陆服务器&#xff0c;有时出现&#xff1a;Access denied for user rootlocalhost出现这种问题&#…

HTTPS 通俗简介

为什么需要HTTPS 9个问题搞懂 https 来源 HTTP是明文传输的&#xff0c;也就意味着&#xff0c;介于发送端、接收端中间的任意节点都可以知道你们传输的内容是什么。这些节点可能是路由器、代理 等。 举个最常见的例子&#xff0c;用户登陆。用户输入账号&#xff0c;密码&am…