负数在计算机中是用补码的形式存储的,正数在计算机中是用原码的形式存储的。
正数求原码直接将十进制转二进制即可,负数的补码是在原码的基础上除符号位外其余位取反后+1。
但是用这种方式求负数补码用编程实现不太方便,下面介绍一种用编程实现起来较简便的求负数补码的方法:
1. 求出负数绝对值的原码
2. 从原码的最后一位数码位往前数,当遇到第一个1时停在此位置
3. 将第一个1前面的数码全部求反
比如:(字长为8位)
求-127的补码:
127的原码: 0
-127的补码:
求-80的补码:
80的原码: 0
-80的补码:
求-1的补码:
1的原码: 00000001
-1的补码:
这种方式用编程实现起来比较方便,在原码的基础上除符号位外其余位取反后+1的方式要考虑进位。
#include
#include
#include
#include
int arr[8]; //范围为 -128 ~ +127
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/217308.html原文链接:https://javaforall.net
