补码

3.经常使用数值编码

因为机器数在计算时,假设符号位和数值位同一时候參与运算,则可能会产生错误结果;而假设单独考虑符号问题,又会添加运算器件的实现难度。因此,为了使计算机可以方便地对数值进行各种算术逻辑运算,必须对数值型数据进行二进制编码处理。所谓编码是採用少量的基本符号(如01),依照一定的组合原则,来表示大量复杂多样的信息的技术。编码的优劣直接影响到计算机处理信息的速度。数值型数据的经常使用编码方法包含:原码、反码、补码。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

1)原码。原码的编码规则是:符号位0表示正,1表示负,数值部分用该数绝对值的二进制数表示。当整数时,小数点隐含在最低位之后;当纯小数时,小数点隐含在符号位和数值位之间,均不占位。通经常使用[X]表示数X的原码。

比如,设机器字长为8位,

[+1] = 00000001         [+127] = 01111111       [+0] = 00000000

[ 1] = 10000001        [ 127] = 11111111       [ 0] = 10000000

显然,按原码的编码规则,零有两种表示形式。

原码表示法简明易懂,与其真值的转换方便,比較easy进行乘除运算。可是在进行加减运算时,原码运算非常不方便。因为符号位不能和数值一样參与运算,所以要依据两数的符号情况,同号相加,异号相减,还要依据两数的绝对值大小,令大数减去小数,最后还要推断结果的符号。这样不仅要求运算器既能作加法,又能作减法,还必须附加很多条件推断的处理,终于既添加了运算器的实现复杂性,又延长了运算的时间。

2)反码。反码的编码规则是:符号位0表示正,1表示负,正数的反码等于原码,负数的反码等于原码除符号位外按位取反,即0110。通经常使用[X]表示数X的反码。

比如,设机器字长为8位,

[+1] = 00000001         [+127] = 01111111       [+0] = 00000000 

[ 1] = 11111110          [ 127] = 10000000     [ 0] = 11111111

显然,按反码的编码规则,零也有两种表示形式。

反码非常easy由原码获得,但相同不方便运算,一般在求补码的过程中用到反码。

3)补码。补码的编码规则是:符号位0表示正,1表示负,正数的补码等于原码,负数的补码等于反码末位加1。通经常使用[X]表示数X的补码。

比如,设机器字长为8位,

[+1] = 00000001         [+127] = 01111111       [+0] = 00000000

[ 1] = 11111111          [ 127] = 10000001     [ 0] = 00000000

显然,按补码的编码规则,零有惟一的表示形式。

补码的概念来源于数学上的和补数。比如,将钟表的时针顺时针拨快5小时和逆时针拨慢7小时,最后指示的位置同样,则称57互为模12情况下的补数。计算机中机器数受机器字长限制,所以是有限字长的数字系统。对于整数来说,机器字长为n位(含符号位),模是2n;对于有符号纯小数来说,模是2

求补运算通常利用反码来实现。

【例】 X = +1011Y = 1101的原码、反码和补码。

    [X ] = 01011                [Y ] = 11101

       [X ] = 01011                [Y ] = 10010

       [X ] = 01011                [Y ] = 10011

採用补码进行加减运算十分方便。通过对负数的编码处理,同意符号位和数值一起參与运算,能够把减法运算转化为加法运算。不论求和求差,也不论操作数为正为负,运算时一律仅仅做加法,从而大大简化运算器的设计,加快了运算速度。

比如,(9)+(5)的运算例如以下:

[9] = 11110111                  11110111

[5] = 11111011           +     11111011

                                      111110010

由于机器字长的限制,丢失高位1,运算结果机器数为11110010,是14的补码形式。

眼下,因为计算机中最多的运算是加减运算,为了简化运算器设计,加快运算速度,有些计算机在数值表示、存储、运算时均採用补码表示法,也有些计算机,数用原码进行存储和传送,运算时採用补码,还有些计算机在进行加减法时採用补码运算,而在进行乘除法时採用原码运算。

4.精度和溢出

现代数字计算机是有限字长的数字系统,机器数表示的范围受到机器字长和数据类型的限制,一旦机器字长和数据类型确定了,机器数所能表示的数的范围和精度也就确定了。所谓精度,是指能够给出的有效数字的位数。一般来说,机器字长越长,能够表示的数的范围越大,精度越高;当字长同样时,浮点数通常比整数能够表示的数的范围要大;浮点数表示时,阶码位数越多,能够表示的数的范围越大,尾数位数越多,能够表示的数的精度越高。

假设一个数的大小超出了计算机所能表示的数的范围,则产生溢出。假设两个正数相加,结果大于机器所能表示的最大正数,称为上溢;假设两个负数相加,结果小于机器所能表示的最小负数,称为下溢。比如,字长为n位的有符号整数,最高1位为符号位,数值位为n1位,用补码表示时,数的表示范围为2n–1~2n–11,一旦运算时发生结果超出此范围的情况,就产生溢出。

转载于:https://www.cnblogs.com/yxwkf/p/4089601.html

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

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

相关文章

置顶 | wolai博客

最近用wolai记录笔记较多&#xff0c;这里放一下我wolai的地址&#xff0c;当然csdn这边也会同时更文。 hanhan的博客

深入研究Clang(四) Clang编译器的简单分析

作者&#xff1a;史宁宁&#xff08;snsn1984&#xff09;首先我们确定下Clang编译器的具体内容和涵盖范围。之前在《LLVM每日谈之二十 Everything && Clang driver 》中曾经提到过&#xff0c;Clang driver&#xff08;命令行表示是clang&#xff09;和Clang前端&…

Expression Trees 参数简化查询

ASP.NET MVC 引入了 ModelBinder 技术&#xff0c;让我们可以在 Action 中以强类型参数的形式接收 Request 中的数据&#xff0c;极大的方便了我们的编程&#xff0c;提高了生产力。在查询 Action 中&#xff0c;我们可以将 Expression Trees 用作参数&#xff0c;通过自定义的…

为你的程序添加监听器

平时在写程序时经常会遇到监听器&#xff0c;比如按钮的click监听器&#xff0c;按键监听器等等。而android中的监听器和java中的回调函数是同一个概念&#xff0c;都是在底层代码中定义一个接口来调用高层的代码。那么什么是回调函数呢&#xff1f;网上说的是“在WINDOWS中&am…

图像处理

android图像处理系列之四&#xff0d;&#xff0d;给图片添加边框&#xff08;上&#xff09; http://www.oschina.net/question/157182_40586 android图像处理系列之六&#xff0d;&#xff0d;给图片添加边框&#xff08;下&#xff09;&#xff0d;图片叠加 http://www.osc…

Git push 时每次都需要密码的疑惑

2015.1.13更新&#xff1a; 在本地搭建Git服务器时&#xff0c;也是有每次操作需要密码的情况。 是因为每次做推送动作时&#xff0c;Git需要认证你是好人。所以需要密码。 可以在 /home/username/.ssh/authorized_keys 文件里添加你的 ssh 公钥。一行一个。这样就可以在你push…

ruby字符串处理

1. str"abc123"puts str[0].chr > a puts str[0] >a的ascii码 2.中文字符串的正则表达式 文本编码:utf-8 文件第一行&#xff1a;#encoding:urf-8 require "iconv" str"八万"reg/(.)万/datareg.match(str)result Iconv.i…

PHP+七牛云存储上传图片代码片段

2014年11月14日 16:37:51 第一段代码是上传单个图片的,第二个是上传多个图片的 1 //上传到七牛2 //单个文件3 //formname: 表单名字; pre: 图片Url中显示的图片名字(也就是七牛中的key)4 public function upImage($formname, $pre)5 {6 if (empty($_FI…

【PS】Gold words tutorials 赤金字教程

material_01material_021. White background and black words.The font of "Laker" is Teenick, and "Huang" is 中國龍粗魏碑2.Open material_01 and select a part of it.Copy and paste the part part into our workspace.You can drag and move to pa…

iOS 键盘的关闭

iOS 键盘的关闭 //通过委托来放弃 “第一响应者” #pragma mark - UITextField Delegate Method -(BOOL)textFieldShouldReturn:(UITextField*)textField {[textField resignFirstResponder];return YES; } //通过委托来放弃 “第一响应者” #pragma mark - UITextView Delegat…

递归与分治

今天总算把第三章递归与分治看完了&#xff0c;呵呵&#xff0c;没想到开头就给我来了点打击&#xff0c;看以后不认真学还真不行了&#xff01; 为了祝贺初战告捷&#xff0c;把几个简单的题目贴上来吧&#xff0c;纪念一下&#xff01; 《整数因子分解》 大于1的正整数n可以分…

Android中的Handler机制

直接在UI线程中开启子线程来更新TextView显示的内容&#xff0c;运行程序我们会发现&#xff0c;如下错 误&#xff1a;android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.翻译过来就是&…

初来乍到

从今天开始&#xff0c;我也加入博客园这个大家庭了&#xff0c;希望能和大家一起学习IT技术&#xff0c;共同进步。小弟初来乍到&#xff0c;望大家能多多关照&#xff01;转载于:https://www.cnblogs.com/markwave/p/3227777.html

JQuery学习四(过滤选择器)

&#xff1a;first选择第一个元素。$&#xff08;“div:first”&#xff09;进行选择第一个<div> :last 选择最后一个最后一个元素 $&#xff08;"div:last"&#xff09;选取最后一个<div> [:not(选择器&#xff09;] 选择不满足“选择器”条件的元素 $…

160 - 1 Acid burn

环境&#xff1a;Windows XP sp3 先打开&#xff0c;看看长什么样&#xff1a; OD载入&#xff0c;右键->查找->所有参考文本字串 找到Sorry,The serial is incorect 找到后就在反汇编窗口跟随&#xff0c;往上翻&#xff1a; 0042F998 /. 55 push ebp 0…

跟树有关的数据结构学习系列之概览

1.Binary Search Tree&#xff08;BST&#xff09; 二叉搜索树 2.B-Tree 3.BTree 4.B*Tree转载于:https://www.cnblogs.com/devindong/p/3233041.html

在社会实践中长本领

暑假回到家&#xff0c;家里要我在自家店里帮忙&#xff0c;做员工。因为我家跟舅舅家合资开了一家家禽冻品批发部&#xff0c;生意兴旺&#xff0c;越做越大&#xff0c;忙得不可开交。在自家店里做员工&#xff0c;当然&#xff0c;家里人都很高兴&#xff0c;我也乐意。在员…

Animating Layout Changes(展开收起)

原文地址&#xff1a;https://developer.android.com/training/animation/layout.html#add &#xff08;1&#xff09;设置布局文件&#xff1a; <LinearLayout android:id"id/container"android:animateLayoutChanges"true"... /> &#xff08;2&am…

160 - 2 Afkayas.1

环境&#xff1a; Windows Xp sp3 OD载入&#xff1a; 运行&#xff0c;然后输入&#xff1a; 然后回到OD&#xff0c;按F12来暂停&#xff0c; 然后ALTF9回到程序领空&#xff0c;把弹出的那个错误消息框点掉&#xff0c;这时OD来到这里&#xff1a; 004025F9 . 68 E81…

POJ 2125 Destroying The Graph (二分图最小点权覆盖集+输出最小割方案)

题意 有一个图&#xff0c; 两种操作&#xff0c;一种是删除某点的所有出边&#xff0c;一种是删除某点的所有入边&#xff0c;各个点的不同操作分别有一个花费&#xff0c;现在我们想把这个图的边都删除掉&#xff0c;需要的最小花费是多少。 思路 很明显的二分图最小点权覆盖…