请问这个要求输出八进制,为什么输出的形式和八进制前面带0的形式不同呢

请问这个要求输出八进制,为什么答案不是0256,0400,而是256,400呢

img

如果要输出4位的话可以写成%.4o,表示输出的字符长度为4;
你用%o输出,就说明输出的是八进制,他不会输出的时候给你表明是八进制
机器读的都是二进制的机器码,以十六进制存入地址,他读的时候也是读十六进制的数,格式化输出八进制,他就会给你转换成八进制的数输出
那个0256中的0只是给机器一个指令,让机器明白这是一个八进制的数,存进去该怎么存还是怎么存,它输出的时候可不会给你说明是几进制,你要判断就得看是以什么格式输出的


#include <stdio.h>
#include <stdlib.h>

int main()
{
   int m = 0256,n = 256;
   printf("%.4o %.4o",m,n);
    return 0;
}