正数、负数求原码、反码、补码
二进制,有符号数,首位为1的是负数,首位为0的是正数。(规定)
无符号数没有正负之分,所以也没有首位的限制。(规定)
(以下示例皆以八位二进制表示)
无符号数
无符号数的原码、反码、补码都一样,皆为该数的二进制表示法
原码 反码 补码
定义
无符号数的原码为该数的二进制表示法
无符号数的反码与原码一样
无符号数的补码与原码一样
举例
1(无符号数)==>0000 0001(原码)==>0000 0001(反码)==>0000 0001(补码)
正数
正数的原码、反码、补码都一样,皆为该数的二进制表示法(同无符号数差不多)
原码 反码 补码
定义
正数的原码为该数的二进制表示法。
正数的反码与原码一样。
正数的补码与原码一样
举例
1==>0000 0001(原码)==>0000 0001(反码)==>0000 0001(补码)
(首位为0的表示正数,所以原码、反码和补码的首位都是0)
负数
原码
定义
负数的原码为该数对应的无符号数的二进制,将首位置1。
举例
-1==>1(无符号数)==>0000 0001(无符号数的二进制)==>1000 0001(原码,首位置1)。
(负数的首位为1)
反码
定义
负数的反码为该数原码的符号位不变,其它位取反。
举例
-1==>1000 0001(原码)==>1111 1110(反码,符号为不变,其它位取反)。
(负数的首位为1)
补码
定义
1、负数的补码为该数对应的无符号数的二进制取反加一。
2、负数补码(首位为1)减一,取反表示的是这个数的无符号数的二进制。
举例
1
-128==>128(无符号数)==>1000 0000(-128的无符号数的二进制)==>0111 1111(取反)==>1000 0000(补码,加一)(负数的首位为1)
-1==>1(无符号数)==>0000 0001(-1对应无符号数的二进制)==>1111 1110(取反)==>1111 1111(补码,加1)(负数的首位为1)
2
1000 0000(补码) ==> 0111 1111(减一) ==> 1000 000(取反,无符号数128)==> -128(负数)(负数的首位为1)
1111 1111(补码) ==> 1111 1110(减一) ==> 0000 0001(取反,无符号数1) ==> -1(负数)(负数的首位为1)
后记
计算机皆使用补码。用补码计算,符号位也可以参与运算。若以原码计算,符号位参与运算数据会出错,所以还需要标识符号位,会造成电路设计复杂,故抛弃。若以反码计算,会存在+0与-0的问题,而0在人们的常识中是不存在正负之分的,所以也抛弃。
补码取反加一为该数的相反数(补码) eg: 1 ==> 0000 0001(补码)==>1111 1110(取反) ==>1111 1111(加1) ==> -1
因为二进制有位数限制,所以表示的数大小也有限制,8位表示的无符号数返回为0(0000 0000(补码))~256(1111 1111(补码)),有符号数为-128(1000 0000(补码))~127(0111 1111(补码))
正数、负数求原码、反码、补码相关推荐
- 正负数的原码反码补码
对于有符号的而言: 1) 二进制的最高位是符号位: 0 表示正数,1 表示负数 2) 正数的原码,反码,补码都一样 (三码合一) 3) 负数的反码=它的原码符号位不变,其它位取反(0->1,1- ...
- day017:Java进制转换、原码反码补码、位运算、位移运算符
一.进制介绍: 1.进制:指进位制,表示某一位置上的数,运算时是逢X进一. 十进制就是逢十进一,二进制就是逢二进一,八进制就是逢八进一. 2.Java中默认的数值都是十进制,如果要输入其他进制,在数值 ...
- 原码 反码 补码的相互转换
原码 反码 补码的相互转换 原码 反码 补码的转换 还是比较 简单基础的问题.之前学习java的时候就学过,后来忘记了,忘记了!!!,后来学了位移运算符,左移 右移 无符号右移 之后就由有点儿懵了. ...
- 正数负数的原码、反码、补码
假设有一个 int 类型的数,值为5,那么,它在计算机中表示为: 00000000 00000000 00000000 00000101 5转换成二制是101,不过int类型的数占用4字节(32位), ...
- 负数的原码反码和补码
As we all know,正数的三码都一样,注意一下最高位为符号位即可: 负数的原码最高位为1,与真值之间换算方便,但对于做减法的操作却很无力,于是引进了反码和补码:负数的反码为它的正数按位取反, ...
- 正负数在计算机中的表示(原码反码补码)及位运算
负数在现代计算机里一般用补码表示(正数也是) 正数补码就是它的原码 负数补码: 最高位是符号位,其余位为对应整数的原码取反再+1 如:1000 0000还原为原码:最高位是1,表示负数,剩余的各位取反 ...
- 原码 反码 补码 之间在小数正数间的转换
原码 反码 补码 之间在小数正数间的转换 基本转换 对于正数 原码等于反码等于补码(小数也一样) 对于负数 原码除了符号位取反即反码 反码基础之上+1即补码 但是在遇到某些题时候还是会混淆,比如三者在 ...
- 负数的二进制 原码反码补码
https://blog.csdn.net/weixin_38296030/article/details/88353914 问题来源: "为毛 -x=!x+1 ??? 其中x为一任意 ...
- java进制原码_Java 一一 进制、原码 反码 补码、移位操作
进制 二进制 和 十进制 相互转换 十进制 和 十六进制 相互转换 原码,反码,补码 原码.反码.补码: 在计算机内, 有符号数有三种表示法: 原码, 反码, 补码. 所有的数据的运算都是采用 补码 ...
最新文章
- ACCESS数据库防止下载
- 前端进阶(三) webpack处理vue以及vue-cli脚手架环境
- linux系统定时检查网络状态python脚本
- mysql back blog_mysql的备份Xtrabackup
- 开机f8修复电脑步骤_知识 | 8种方法修复电脑无法开机问题
- spring源码分析之spring-web remoting模块概况及基本概念
- 七 web爬虫讲解2—urllib库爬虫—状态吗—异常处理—浏览器伪装技术、设置用户代理...
- 这位博士跑赢“地震波”:提前 10 秒预警宜宾地震!
- 随想录(我们的竞争力)
- Java编程思想笔记(内部类)
- 古风素材无水印免费下载
- Android之视频裁剪
- 智能识别系统设计---图像特征提取
- 平台业务收款分账产品设计 - 支付计费分账
- 制作ubuntu18.04启动盘 + 安装ubuntu18.04
- 生物信息百Jia软件(七):glimmer
- java图片马赛克_朋友圈照片打上马赛克,就真的安全了吗?
- 准大三学生暑期社会实践真实感悟
- catia怎样倒2d_Catia Drafting平面图生成 3D 转2D教程.ppt
- 如何用计算机弘扬中国精神,【弘扬伟大民族精神】姚期智:为中国建一流计算机学科...
热门文章
- matlab小猪程序,matlab描绘小猪佩奇为字符串
- MyEclipse项目出现无法解析类型 javax.servlet.http.HttpServletRequest。从必需的 .class 文件间接引用了它
- 玩树莓派于是做了一个扩展板12V供电转5V外加风扇及外设
- JMVM系列之一 MVC多视点参考帧管理类
- 优酷VIP会员周卡只需7.5元,看《沉香如屑》用优酷视频
- kNN算法(k近邻算法,k Nearest Neighbor)
- c语言 subl 指令,linux 之 汇编语言 的mov和movl sub 和subl add 和addl 的区别??
- 【安全】Web应用常见业务逻辑漏洞
- Keil uVision5美化
- 电子病历质控系列-总结篇(001)