2.2.4加减运算和溢出判断

简介: 2.2.4加减运算和溢出判断

加减运算

1.1 原码的加减运算

原码的加法运算:

正+正 ->绝对值做加法,结果为正

负+负 ->绝对值做加法,结果为负

正+负 ->绝对值大的减绝对值小的,符号同绝对值大的数

负+正 ->绝对值大的减绝对值小的,符号同绝对值大的数

原码的减法运算:减数符号取反,转变为加法

正-负->正+正

负-正->负+负

正-正->正+负

负+正->负-负

在计算结果时会溢出,因此要判断溢出

3加上3,相当于往右移动3个格子,因为溢出,所以跳到最左边移动三位等于-2

判断溢出的方法就是:

V=0 0 1(非) || 0(非) 0(非)1= 0 0 0(异或运算)+111(异或运算) =0+1=1 溢出

用双符号,运算结果第一个得到的是正确结果,第二个是实际结果,但实际指存储一个符号位,运算时会复制

双符号位补码又称:模4补码 把逗号当成小数点,前面位权大于4的舍弃即2的一次方以后,

单符号位补码又称:模2补码

相关文章
|
3月前
|
C语言
用栈实现将一个十进制数值转换成八进制数值。即用该十进制数值除以8,并保留其余数;重复此操作,直到该十进制数值为0为止。最后将所有的余数反向输出就是所对应的八进制数值
这篇文章展示了如何使用栈(包括顺序栈和链栈)实现将十进制数值转换成八进制数值的方法,通过C语言编程演示了两种栈的实现方式和使用场景。
用栈实现将一个十进制数值转换成八进制数值。即用该十进制数值除以8,并保留其余数;重复此操作,直到该十进制数值为0为止。最后将所有的余数反向输出就是所对应的八进制数值
|
6月前
|
C语言
C语言自增减、逻辑运算、位运算、位移运算及三目运算操作
C语言自增减、逻辑运算、位运算、位移运算及三目运算操作
47 0
|
11月前
|
存储
【408计算机组成原理】—加减运算和溢出判断(八)
【408计算机组成原理】—加减运算和溢出判断(八)
不用任何比较运算符找出两个整数中的较大的值
不用任何比较运算符找出两个整数中的较大的值
79 0
|
C语言
已知一个整数,如何判断这个整数是无符号的?
已知一个整数,如何判断这个整数是无符号的?
88 0
|
C++
C++ 各种无符号整型能够在溢出之前计算出斐波那契数列的最大项数是几?答案是24、47、93
C++ 各种无符号整型能够在溢出之前计算出斐波那契数列的最大项数是几?答案是24、47、93
79 0
|
C语言
5.1.4_带符号整数的表示和运算_原反补
计算机组成原理之带符号整数的表示和运算_原反补
212 0
5.1.4_带符号整数的表示和运算_原反补
|
存储
用补码计算x+y,并判断结果是否溢出问题
浮点数的加减法与是否溢出的判断,是计算机组成原理中的数据存储的一个入门。至于溢出情况,如果01就是正溢出,00,11未溢出,10负溢出。
688 0
用补码计算x+y,并判断结果是否溢出问题
|
开发者 索引 Python
数值运算
快速学习数值运算
数值运算
|
开发者 索引 Python
数值运算|学习笔记
快速学习数值运算