#include <stdio.h> #include <string.h>
int main(void) { int i = -0x1212; char c[sizeof(i)]; size_t j; memcpy(c,&i,sizeof(c)); for (j=0;j<sizeof(c);++j) printf("%02X ",(unsigned char)c[j]); printf("\n"); return 0; }
|
在计算机史上有原码机、反码机。现在好像只有补码机。
补码:一是做加减最简单,与用原码、反码做相比,CPU内的运算器、控制器硬件都简单得多;二是只有一个0,原码、反码都有+0、-0两个,增加不少麻烦;三是只要增加一个符号位(双符号位),就可很简单地解决溢出判断问题,而且计算与判溢一步走,而原码、反码需另行判溢,加减速度要低一个数量级。
在做乘除时,还是转成原码再做,做完再转回补码。
阅读(1017) | 评论(0) | 转发(0) |