2.3我们介绍了无符号编码和补码编码,本次我们来看一下在这两种编码下,整数的运算是如何进行的。看后之余,别忘了“点个推荐哦。”
引言
平时的编程过程中,当进行整数运算时,经常会遇到一些奇怪的结果,比如两个正数加出负数,两个负数可以加出一个正数,这些都是由于数值表示的有限性导致的。下面我们来看看C语言和Java语言当中的例子。
public static void main(String[] args) {
int a = 0x7FFFFFFF;
int b = 0x7FFFFFFF;
System.out.println(a);
System.out.println(b);
System.out.println( a + b );
}
程序当中的a和b都是很大的正整数,结果它们相加会得到一个负数。
接下来我们再来看看C语言当中的例子,它也会具有同样的特性。
#include <stdio.h>
int main(){
int a = 0x7FFFFFFF;
int b = 0x7FFFFFFF;
printf("%d\n",a);
printf("