补码反码以及无符号小结

   中午看了点《深入OOXX》, 继续之前看的很糊涂的二进制码关于补码反码的问题。

   现在有点头绪,写点。

#include <stdio.h>

#include <stdlib.h>

int outit(unsigned char * ptr,int n)

{

    int i;

    for(i=0;i<n;i++)

    {

        printf("%.2X ",*(ptr+i));

    }

    printf("\n");

    return 0;

}

int main()

{

    int test;

    do

    {

    printf(" Input :\n");

    scanf("%d",&test);

    outit((unsigned char *)&test,sizeof(test));

    } while (1);

}

 测试2进制码的程序。

 跟着书上写的想下去,会出现一点思维上的迷糊,因为我们平时记住的补码=反码+1;

 因该把这个归于捷径而不是我们思维的方法,补码的真正意义是在于将最高位(比如8421的8)看作负(即-8)

 然后于其他各个位的权值相加。

 如 1011 计算思路 -8+2+1 = 5

 然而编译器处理你输入的数是有一定的方法。下次继续写。

此条目发表在未分类分类目录。将固定链接加入收藏夹。

发表评论

邮箱地址不会被公开。 必填项已用*标注