12.16
来源:互联网 发布:msdb数据库 编辑:程序博客网 时间:2024/04/29 04:27
冯诺依曼机工作的基本方式的特点是按地址访问并顺序执行指令。
原码、反码和补码
计算机中参与运算的数有正负之分,计算机中的数的正负号也是用二进制表示的。用二进制数表示符号的数称为机器码。常用的机器码有原码、反码和补码。
一、原码
求原码的方法:设X;若X≥0,则符号位(原码最高位)为0,X其余各位取值照抄;若X≤0,则符号位为1,其余各位照抄。
【例1】X=+1001001 [X]原 = 01001001
【例2】X=-1001001 [X]原 = 11001001
二、反码
求反码的方法:设X;若X≥0,则符号位(原码最高位)为0,X其余各位取值照抄;若X≤0,则符号位为1,其余各位按位取反。
【例3】X=+1001001 [X]反 = 01001001
【例4】X=-1001001 [X]反 = 10110110
三、补码
求补码的方法:设X;若X≥0,则符号位(原码最高位)为0,X其余各位取值照抄;若X≤0,则符号位为1,其余各位按位取反后,最低位加1。
【例5】X=+1001001 [X]补 = 01001001
【例6】X=-1001001 [X]补 = 10110111
四、补码加减法
计算机中实际上只有加法,减法运算转换成加法运算进行,乘法运算转换成加法运算进行,除法运算转换成减法运算进行。用补码可以很方便的进行这种运算。
1、补码加法
[X+Y]补 = [X]补 + [Y]补
【例7】X=+0110011,Y=-0101001,求[X+Y]补
[X]补=00110011 [Y]补=11010111
[X+Y]补 = [X]补 + [Y]补 = 00110011+11010111=00001010
注:因为计算机中运算器的位长是固定的,上述运算中产生的最高位进位将丢掉,所以结果不是
100001010,而是00001010。
2、补码减法
[X-Y]补 = [X]补 - [Y]补 = [X]补 + [-Y]补
其中[-Y]补称为负补,求负补的方法是:对补码的每一位(包括符号位)求反,最后末位加“1”。
【例8】X=+0111001,Y=+1001101,求[X-Y]补
[X]补=00111001 [Y]补=01001101 [-Y]补 = 10110011
[X-Y]补 = [X]补 + [-Y]补 = 00111001+10110011=11101100
五、数的表示范围
通过上面的学习,我们就可以知道计算机如果用一个字节表示一个整数的时候,如果是无符号数,可以表示0~255共256个数(00000000~11111111),如果是有符号数则能表示-128~127共256个数(10000000~01111111)。如果两个字节表示一个整数,则共有65536个数可以表示,大部分程序设计语言中整数的范围都是-32768~32767的原因,可以看出这种整数类型是16位的有符号数,而且是补码表示的。
- 12.16
- 12.16
- 12.16
- 2014 12.16
- 12.16.2014
- 12.16练习。
- 12.16三道题
- 一天几句话12.16
- Nodelib WIP[12.16]
- OK6410移植Linux3.12.16
- #早安,努力#12.16
- 12.16(1)
- 12.16(2)
- 12.15~12.16培训总结
- 黑马程序员2012.6.12.16.34
- 12.16 android textView 跑马灯
- 12.16省选训练总结
- C语言面试题12.16
- 对字符编码与Unicode,ISO 10646,UCS,UTF8,UTF16,GBK,GB2312的理解
- 改变“我的文档”的默认位置
- 开机就自动启动小键盘
- ant使用方法
- 转换分区格式
- 12.16
- xp自动登陆方法
- 如何让SHBrowseForFolder弹出指定的目录
- sql之left join、right join、inner join的区别
- 分享一个图象变形类(Skew)
- 字符串(String)的一系列操作
- word中的页码,想从哪里开始就从哪里开始
- IE页面字体变大 排版混乱
- MM--发票校验