#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 .......
引用第8楼zhoubaozhou于2007-11-11 13:41发表的 :是不是printf 的 %x 将后面的作了扩展,扩展成一个字的
引用第11楼k哥于2007-11-13 13:53发表的 :那为什么a+a的时候扩展是用0,而b扩展是用1呢