打印一字节的有符号数-128,该怎么处理

打印一字节的有符号数-128
unsigned char c=0x80;



一字节符号数范围:-128----127

0x80 是-128 补码,也是128的补码(正数,补码和原码一致)

我想打印c,让其显示-128,不知道怎么做???



问题2:

4条汇编指令:

mov ax, 7ff0h;
add al,10h; ax=7f00h
add ah,1; ax=8000h
add ax,2; ax=8002h

add ax,2; ax=8002h 



第三句执行后,of=?

ah由7f变成80 ,80可能是符号数,也可能是无符号数字, 但是对于of这个标志来讲,符号数会优先处理,所以把of置为1



最后这一句的 of=?

 of=0;

注意:of之所以为0的原因, 是因为计算机认为8000h 是一个补码,如果是符号数,那么8000h则是负数,原码的值为 -32768

如果是无符号数字,是一个很大的正数.

无论是有符号数,还是无符号数字, 加上2后,都不会溢出,所以of是0


不知道我对这几条汇编理解的对不对? 不对,请指出,谢谢



------解决方案--------------------
C/C++ code

    unsigned char c=0x80;
    strtoul((const char*)&c,0,2);
    printf("%d",-c);