计算机系统的一些常识---补码

补码:
原码:也叫符号绝对值码
最高位0表示正 1表示负,其余二进制位是该数字的绝对值的二进制位
原码简单易懂
加减乘除运算,增加了CPU的复杂度
零的表示不唯一

反码:反码运算不便,也没有在计算机中应用;

移码 :表示数值平移N位,N称为移码量,主要用于浮点数的阶码存储

补码:
十进制转二进制
正整数转二进制
除2取余,直至商为零,余数倒序排序

负整数转二进制
先求与该负数相对应的正整数的二进制代码,然后将所有位取反,末尾加1,不够位数时,左边补一
零转二进制
全零
已知二进制求十进制补码
如果首位是零,则表明是正整数,按普通方法来求
如果首位是1,则表明是负整数

补码:

原码
也叫 符号绝对值码
最高位0表示正 1表示负,其余二进制位是该数字的绝对值得二进制位

补码:(inport)
正整数转二进制
除2取余,直至商位零,余数倒叙排序
负整数转二进制
先求与该负数相应的正整数的二进制代码,然后将所有位取反,
末尾加1,不够位数时,左边补零,(二进制转十进制图)

反码:反码运算不便,也没有在计算机中应用

移码:移码表示数值平移N位,N称为移码量
移码主要用于浮点数的价码的存储。

在VC6.0中int类型的变量所能存储的数字范围是多少 7FFFFFFF到8FFFFFFF参考:(二进制转十进制图)

时间: 2024-08-02 22:54:43

计算机系统的一些常识---补码的相关文章

深入计算机系统-练习题2.44 补码运算

int x = foo(); //任意值 int y = bar(); //任意值 unsigned ux =x; unsigned uy = y; 证明对于所有的x和y值,它都为真(等于1): 或者2)给出使得它为假(等于0)的x和y的值. 1)x+y == uy+ux 答:这个等式成立,首先这个比较是在位级运算层面的比较.补码和无符号加法有相同的位级行为,也就是从位级层面来看,它们是完全相同的. 2)x*~y + uy*ux == -x 很显然,这也是位级层面的比较.既然已知x+y == u

[C++基础]原码/反码/补码、二进制位运算

原码/反码/补码 编码 定义 实例 原码 最高位为符号位,"0"表示正,"1"表示负,其余位表示数值的大小. [+100]原=01100100 [+0]原=00000000 [-100]原=11100100 [-0]原=10000000注意:在原码中,零有两种表示形式. 反码 正数的反码与其原码相同:负数的反码是对其原码逐位取反,但符号位除外. [+100]反=01100100 [+0]反=00000000 [-100]反=10011011[-0]反=1111111

c语言学习笔记分享——原码、反码与补码

一.什么是原码.反码和补码我们知道,在计算机内部存储的带符号数都是以补码形式存储,用补码形式进行运算的.什么是一个数的补码?为什么要用补码?这要从数的原码.反码开始讲.我们以整型数为例,且假定字长为8位.1.原码整数X的原码是指:其符号位为0表示正,为1表示负;其数值部分就是X的绝对值的二进制数.X的原码通常用[X]原表示.如:[+100]原=01100100 [+0]原=00000000[-100]原=11100100 [-0]原=10000000注意:在原码中,零有两种表示形式.原码表示法简

OC成长之路 <一> 位运算符、枚举、(原码,补码,反码)、以及NSInteger,NSUInteger,int的区别

引言: 咳咳,首先我是一枚资深小白(资深小白- -.也太衰),这个博客是自己用来记录迷糊犯二的东西. 最近发现难道是因为老了么(我明明18....),很多东西,脑子已经不记得了,迷迷糊糊,概念理论的东西脑子里面七零八落. 从一个知识点跳到另一个知识点,简直是连环事故. ??sad. 傲娇的我不服,决心要认认真真做好笔记,记录期间遇见的种种. 生活要有仪式感,学习应该也是要这样,作为Chapter 1 ,应该要起个好名字. 想了几十分钟,还是随便一些吧. 那就叫: OC成长之路 okok,来开始今

Java开发入门

1.1Java语言概述 什么是Java语言 Java语言是美国Sun公司(Stanford University Network),在1995年推出的高级的编程语言.所谓编程语言,是计算机的语言,人们可以使用编程语言对计算机下达命令,让计算机完成人们需要的功能 Java语言发展历史 Java语言能做什么 Java语言主要应用在互联网程序的开发领域.常见的互联网程序比如天猫.京东.物流系统.网银系统等,以及服务器后台处理大数据的存储.查询.数据挖掘等也有很多应用. 1.2计算机基础知识 二进制 计

计算机科学基础知识

1. 计算机科学基础知识 1.1 数制及其转换 二进制.八进制.十进制和十六进制等常用数制及其相互转换 1.2 计算机内数据的表示 数的表示(原码.反码.补码.移码表示,整数和实数的表示,精度和溢出) 原码表示法:最高位是符号位.数值X的原码记为[X]原,如果机器字长为n(即采用n个二进制位表示数据),则原码表示: [+0]原=0 0000000 [-0]原=1 0000000 [+1]原=0 0000001 [-1]原=1 0000001 [+127]原=0 1111111 [-127]原=1

深入理解计算机系统(2.4)------整数的表示(无符号编码和补码编码)

上一篇博客我们主要介绍了布尔代数和C语言当中的几个运算符.那么这一篇博客我们主要介绍在计算机中整数是如何表示的,诸如我们在编码过程中遇到的对数据类型进行强制转换可能会得到意想不到的结果在这篇博客里你会得到解答. 1.什么是整数? 整数包含正整数,0,负整数.我们从小的数学常识,整数是无穷无尽的,即整数的大小没有限制. 但是在计算机中则不能这样理解,因为计算机是靠数字信号来表示数,计算机所能处理的整数的长度是由计算机的字长来决定的,所以,在计算机中,我们必须制定一个规则来表示整数. 2.C 语言中

进制转换与原码补码

进制也就是进位制,是人们规定的一种进位方法. 我们先来回想一下生活中的十进制: (1) 数码: 指集合论中刻画任意集合所含元素数量多少的一个概念 十进制的基本符号是:0.1.2.3.4.5.6.7.8.9:我们把这些称为十进制的数码:也就是基本符号,所有的十进制都是有这十个数码组成的.每位在加时都是"逢十进一". (2) 位权: 数制中每一固定位置对应的单位值称为位权 那么大家考虑一个问题,说一个十进制数,已知第四位是5,其它位都是0,那么这个数是几?答案:5000,怎么算的是5*10

类型转换、运算符、位运算符【以及原码、反码、补码】

1.类型转换 php中的‘+’与js有区别,php中+只是算术运算符[更偏向转化为数字].js更偏向转化为字符串 php本身的自动转换类型便符合大多数对类型的处理.[也有强制转换的情形出现] [注意转换关系:字符串转换成数字类型,开头的那部分字符串能够转化为数字(还要判断浮点型和整型)] 2.转换成布尔型[实现流程控制的关键] 以下值为false: (1)布尔值为false (2)整型值为0 (3)浮点型为0.0 (4)空字符串[字符串'0'(相当于是字符串做数组时是一个空字符串),区别,注意‘