关于char有符号与无符号的问题

img


当格式控制符为%d,得出结果为-1,这个我理解。
但为啥改为%u结果为一堆乱码,求解答,非常感谢

%u是输出unsigned int类型,-1转化为unsigned int类型,就是这个很大的整数

解释的很全了 https://stackoverflow.com/questions/27547377/format-specifier-for-unsigned-char

你先别忙着研究int和uint那么大的类型
就说char和unsigned char,一个表示范围-128到127,一个是从0到255
-1就是255,这个你先理解了再说,还不理解回去复习c语言基础里关于变量如何以二进制存储的相关章节
%d表示以int方式打印,%u表示以unsigned int方式打印,这就是区别