DarkSE 发表于 2016-11-8 18:59:37

C语言int转化为char

printf("%c\n",-300);
printf("%c\n",-400);
那个-400按存储方式截取的话是对的,但是为什么到了-300就不对了呢?

锦衣夜行 发表于 2016-11-8 20:42:14

                //-400原码   1000 0001 1001 0000
                //-400反码   1111 1110 0110 1111
                //-400补码   1111 1110 0111 0000
                //截断后   0111 0000   =   112=='p'
               
                //-300原码   1000 0001 0010 1100
                //-300反码   1111 1110 1101 0011
                //-300补码   1111 1110 1101 0100
                //截断后   1101 0100=   212 >127=='?'

DarkSE 发表于 2016-11-8 22:01:35

锦衣夜行 发表于 2016-11-8 20:42
//-400原码   1000 0001 1001 0000
                //-400反码   1111 1110 0110 1111
                //-400补码   1111 1110 011 ...

我知道了,主要是牵扯到ASCII后128位的问题,谢谢
页: [1]
查看完整版本: C语言int转化为char