


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
二进制中第一位0代表正;1代表负我知道,但是给你一个二进制的数比如101那么转化成十进制应该是多少? 5? 但不是说首位为1应该是负的吗?谁能给我讲讲这个首位什么时候作为符号,什么时候作为数字去计算?什么时候可以直接计算,什么时候需要取反?我怎么知道它是正数还是负数?如果你有这种疑问,那就是没有高清概念有问题,我们只有在说计算机处理数时,会用0和1代表正负,这种数称之为机器数(包括原码,反码,补码);一:表示法:1、正数5的表示法假设有一个 int 类型的数,值为5,那么,我们知道它在计算机中表示为:00000000 00000000 00000000 000001015转换成二制是101,不过int类型的数占用4字节(32位),所以前面填了一堆0。2、负数-5的表示法现在想知道,-5在计算机中如何表示?在计算机中,负数以原码的补码形式表达。二、概念:1、原码:一个正数,按照绝对值大小转换成的二进制数;一个负数按照绝对值大小转换成的二进制数,然后最高位补1,称为原码。比如 00000000 00000000 00000000 00000101 是 5的 原码。 10000000 00000000 00000000 00000101 是 -5的 原码。备注: 比如byte类型,用28来表示无符号整数的话,是0 - 255了;如果有符号,最高位表示符号位,0为正,1为负,那么,正常的理解就是 -127 至 +127 了.这就是原码了,值得一提的是,原码的弱点,有2个0,即+0和-0(10000000和00000000);还有就是,进行异号相加或同号相减时,比较笨蛋,先要判断2个数的绝对值大小,然后进行加减操作,最后运算结果的符号还要与大的符号相同;于是,反码产生了。2、反码:正数的反码与原码相同,负数的反码为对该数的原码除符号位外各位取反每一位取反(除符号位)。取反操作指:原为1,得0;原为0,得1。(1变0; 0变1)比如: 正数00000000 00000000 00000000 00000101 其反码还是 00000000 00000000 00000000 00000101 负数10000000 00000000 00000000 00000101 其反码则是 11111111 11111111 11111111 11111010。反码是相互的,所以也可称:10000000 00000000 00000000 00000101 和 11111111 11111111 11111111 11111010互为反码。备注:还是有+0和-0,没过多久,反码就成为了过滤产物,也就是,后来补码出现了。3、补码:正数的补码与原码相同,负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1.比如: 10000000 00000000 00000000 00000101 的反码是:11111111 11111111 11111111 11111010。那么,补码为:11111111 11111111 11111111 11111010 + 1 等于 11111111 11111111 11111111 11111011备注:1、从补码求原码的方法跟原码求补码是一样的 ,也可以通过完全逆运算来做,先减1,再取反。 2、补码却规定0没有正负之分所以,-5 在计算机中表达为:11111111 11111111 11111111 11111011。转换为十六进制:0xFFFFFFFB。三、再举一例我们来看整数-1在计算机中如何表示。假设这也是一个int类型,那么:1、先取-1的原码:10000000 00000000 00000000 000000012、得反码: 11111111 11111111 11111111 11111110(除符号位按位取反)3、得补码: 11111111 11111111 11111111 11111111可见,1在计算机里用二进制表达就是全1。16进制为:0xFFFFFF四、主要知识点:正数的反码和补码都与原码相同。负数的反码为对该数的原码除符号位外各位取反。负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1源码:优点在于换算简单 缺点在于两个零 加减法需要独立运算反码:优点在于表示清晰 缺点在于两个零 加减法同样需要独立运算补码:优点在于一个零 范围大 减法可以转为加法 缺点在于理解困难下面是书上原文:原码表示法规定:用符号位和数值表示带符号数,正数的符号位用“0”表示,负数的符号位用“1”表示,数值部分用二进制形式表示。反码表示法规定:正数的反码与原码相同,负数的反码为对该数的原码除符号位外各位取反。补码表示法规定:正数的补码与原码相同,负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1.正零和负零的补码相同,+0补=-0补=0000 0000B五、特殊情况-1281000 0000,那么,它的原码是什么呢?从补码求原码的方法跟原码求补码是一样的。先保留符号位其它求反: 1111 1111, 再加1,11000 0000, 超过了8位了。对,用8位数的原码在这里已经无法表示了。那么,回到原码处, 它的原码也是 1000 0000(超出的自动丢失),1000 0000 在原码表示什么呢? -0, 但补码却规定0没有正负之分。转换一下思路,看看计算机里,是怎么运算的: 对于负数,先取绝对值,然后求反,加一-128 - 128 - 1000 0000 - 0111 1111 - 1000 0000现在明确了吧所以, 8位有符号的整数取值范围的补码表示1000 0000 到 0000 0000, 再到 0111 1111即 -128 到 0, 再到 127最终 -128 +127永远记住:程序里的加减法对 二进制是永远有效的。但是并不一定适合于
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新能源电池隔板加工制造项目施工方案
- 土石方工程设备使用与管理方案
- 超高纯电子级气体生产建设项目建设工程方案
- xx市城乡供水安全保障一体化项目技术方案
- 冷冻法施工组织设计
- 中心城区地下管网改造项目节能评估报告
- 2025年新生入学考核题库及答案
- 老旧供水管网改造工程节能评估报告
- 跨区域口腔医院医生聘用及人才培养协议
- 离婚二次起诉书:共同债务清偿与财产分割协议
- 家庭食品安全常识教育
- 管井井点降水记录
- 污水钢筋混凝土管施工方案
- 腰椎结核的围手术期护理查房ppt培训课件
- 中医学基础理论-经络学说
- 茶学概论-第一章-茶的起源与传播(2学时)课件
- 网络空间安全导论-西北工业大学中国大学mooc课后章节答案期末考试题库2023年
- 【直播带货的模式研究国内外文献综述4300字(论文)】
- 屋面防水维修工程施工方案
- 破产管理人考试题库及答案
- 2023陕西延长石油集团矿业公司所属单位招聘666人笔试备考题库及答案解析
评论
0/150
提交评论