Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4826822
  • 博文数量: 930
  • 博客积分: 12070
  • 博客等级: 上将
  • 技术积分: 11448
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-15 16:57
文章分类

全部博文(930)

文章存档

2011年(60)

2010年(220)

2009年(371)

2008年(279)

分类: LINUX

2009-07-19 13:45:34

#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) |
0

上一篇:好东西不敢 独享

下一篇:最长公共字符串

给主人留下些什么吧!~~