int main() { int i; scanf("%i",&i); printf("%d",i); }
如果我将i/p
作为-077,我按预期得到-63,但如果i/p
为-078,则o/p
为-7。
你能解释一下我做错了吗?
答案 0 :(得分:2)
但是如果i / p是-078那么o / p是-7。你能解释一下???
转换在第一个字符处停止,该字符在使用的基数中不是有效数字。由于数字以'0'
开头,而不是'x'
或'X'
,因此所选的基数为8. '8'
不是八进制数字。因此,转化仅消耗"07"
。
答案 1 :(得分:1)
这是因为8不是八进制表示法中的有效数字。 使用0-7。