#include "stdio.h"int main(){ char a,b; a=124; b=a+a; printf("%x\n",a); printf("%x\n",a+a); printf("%x\n",b); return 0;}
引用第3楼liusum于2007-11-10 00:01发表的 :char 只能表示-128 ~ 127 转 16位时 正数高位用0补 负用1补a= 0111 1100a+a = 1111 1000 = 248 = 0000 0000 1111 1000=f8b=a + a = 1111 1000 = (-8)10b= 1111 1111 1111 1000 = fff8 .......
引用第9楼zhd32于2007-11-11 14:19发表的 :是传参的时候做了字长扩展的。。因为 printf 函数不知道第二个及其以后参数的类型和长度