作业帮 > 综合 > 作业

#include"stdio.h"main(){int a=-1 printf("%d,%u,%o,%x\n",a,a,

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/28 03:15:11
#include"stdio.h"main(){int a=-1 printf("%d,%u,%o,%x\n",a,a,a,a);}结果怎么算出来的告诉一下
这道题首先要理解一个概念,就是-1在继续计算机中是以补码形式存储的,亦即在计算机中存储的值为二进制形式1111 1111 1111 1111 1111 1111 1111 1111(假定为32位系统).当printf格式输出字符串为%d时,系统会将存储的值以有符号数整数形式输出,所以输出值为-1;%u则表示以无符号整数形式输出,所以值为4294967295;%o表示以八进制整数形式输出,所以值为37777777777,;%x表示以十六进制整数形式输出,所以值为FFFFFFFF.要理解这个只要明白不同进制值之间的转换和计算机中原码、反码、补码的关系就可以了.