#include"stdio.h"main(){int a=-1 printf("%d,%u,%o,%x\n",a,a,a,a);}结果怎么算出来的告诉一下
#include"stdio.h"main(){int a=-1 printf("%d,%u,%o,%x\n",a,a,a,a);}结果怎么算出来的告诉一下
日期:2013-08-05 17:43:40 人气:1
这道题首先要理解一个概念,就是-1在继续计算机中是以补码形式存储的,亦即在计算机中存储的值为二进制形式1111 1111 1111 1111 1111 1111 1111 1111(假定为32位系统)。当printf格式输出字符串为%d时,系统会将存储的值以有符号数整数形式输出,所以输出值为-1;%u则表示以无符号整数形式输出,所以值为4294967295;%o表示以八进制整数形式输出,所以值为37777777777,;%x表示以十六进制整数形式输出,所以值为FFFFFFFF。要理解这个只要明白不同进制值