XXaar 2022-10-06 22:46 采纳率: 93.8%
浏览 34
已结题

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

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

img

  • 写回答

1条回答 默认 最新

  • 17丶 2022-10-06 23:51
    关注

    如果要输出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;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月7日
  • 已采纳回答 10月7日
  • 创建了问题 10月6日

悬赏问题

  • ¥15 hexo+github部署博客
  • ¥15 求螺旋焊缝的图像处理
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
  • ¥15 itunes恢复数据最后一步发生错误
  • ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了
  • ¥100 H5网页如何调用微信扫一扫功能?