1.思维导图
2.有以下变量求输出结果
signed char c = 178;
printf("%d\n",c);
printf("%u\n",c);
unsigned char d = -9;
printf("%d\n",d);
printf("%u\n",d);
并写出数据存储和取出的过程
#include<stdio.h>
int main(int argc, const char *argv[])
{
signed char c = 178;
//存储看符号+
//原码:1011 0010
//反码:1011 0010
//补码:1011 0010
//取出看类型:
//补码:1011 0010
//反码:1011 0001
//原码:1100 1110
printf("%d\n",c); // ---> -78
//存储
//原码:0000 0000 0000 0000 0000 0000 1011 0010
//反码:0000 0000 0000 0000 0000 0000 1011 0010
//补码:0000 0000 0000 0000 0000 0000 1011 0010
//取出
//补码:0000 0000 0000 0000 0000 0000 1011 0010
//反码:1111 1111 1111 1111 1111 1111 1011 0010
//原码:1111 1111 1111 1111 1111 1111 1011 0010
printf("%u\n",c); //---> 4294967218
unsigned char d = -9;
//存储看符号
//原码:1000 1001
//反码:1111 0110
//补码:1111 0111
//取出看类型:
//补码:1111 0111
//反码:1111 0111
//原码:1111 0111
printf("%d\n",d); //---> 247
//存储看符号
//原码:1000 1001
//反码:1111 0110
//补码:1111 0111
//取出看类型:
//补码:1111 0111
//反码:1111 0111
//原码:1111 0111
printf("%u\n",d); //---> 247
return 0;
}
3.求-57的原码、反码和补码
/*
求-57的原码、反码、补码
原码:1011 1001
反码:1100 0110
补码:1100 0111
*/