关于c语言scanf转换说明

img


如图,读到这里我有疑问,如果要读取一个八进制有符号short类型该怎么办,用%ho吗,但书上说%ho表明把对应值储存为无符号short类型,求解答

有符号和无符号只在计算和转换成string显示的时候有意义
在内存里都是占2个字节的二进制
主要是除了10进制之外,其他进制都不存在负数,所以会按照无符号型存储
那么如果你输入的8进制不会溢出,那么值就跟有符号型一致
而如果你输入的8进制数比较大,你获得的short就会变成负数
如果再大那直接溢出了