是的,300对应的16进制是0X0000012C, '%c'打印的是一个字符,所以打印的是0x2C,对应的字符是’,‘ , 相应的400的16进制是0x00000190,打印的是0x90,对应的字符是’?‘
这是C语言的格式输出,%c,%y这些代表你要输出的数据的数据类型;%d 表示输出十进制有符号的整数。
1、%u 十进制无符号整数。
2、%f 表示输出浮点数。
3、%s表示输出 字符串。
4、%c表示输出单个字符。
5、%p表示输出指针的值。
6、%e表示输出指数形式的浮点数。
7、%x, %X 表示输出无符号以十六进制表示的整数。
8、%0 表示输出无符号以八进制表示的整数。
9、%g表示输出自动选择合适的表示法。
当输入数字去来输出字符的时候,是输出数字所对应的ASCII码值,但ASCII码表只有从32到127(32前不是可以显示的字符)300 400明显大于了127,即,300 400转换成二进制多于一个字节
300:1 00101100
400:1 10010000
只能取最后一个字节
即,300 -> 00101100 ->44 对应 ,
400:10010000->144 没有对应的字符 输出 ?