【C语言】进制输出加上前缀

2023-11-20

  • 对于八进制数字,它没法和十进制、十六进制区分,因为八进制、十进制和十六进制都包含 0~7 这几个数字。
  • 对于十进制数字,它没法和十六进制区分,因为十六进制也包含 0~9 这几个数字。如果十进制数字中还不包含 8 和 9,那么也不能和八进制区分了。
  • 对于十六进制数字,如果没有包含 a~f 或者 A~F,那么就无法和十进制区分,如果还不包含 8 和 9,那么也不能和八进制区分了。

区分不同进制数字的一个简单办法就是,在输出时带上特定的前缀。在格式控制符中加上#即可输出前缀,例如 %#x、%#o、%#lX、%#ho 等,请看下面的代码:

#include <stdio.h>
int main()
{
    short a = 0b1010110;  //二进制数字
    int b = 02713;  //八进制数字
    long c = 0X1DAB83;  //十六进制数字
   
    printf("a=%#ho, b=%#o, c=%#lo\n", a, b, c);  //以八进制形似输出
    printf("a=%hd, b=%d, c=%ld\n", a, b, c);  //以十进制形式输出
    printf("a=%#hx, b=%#x, c=%#lx\n", a, b, c);  //以十六进制形式输出(字母小写)
    printf("a=%#hX, b=%#X, c=%#lX\n", a, b, c);  //以十六进制形式输出(字母大写)
   
    return 0;
}

运行结果:
a=0126, b=02713, c=07325603
a=86, b=1483, c=1944451
a=0x56, b=0x5cb, c=0x1dab83
a=0X56, b=0X5CB, c=0X1DAB83

十进制数字没有前缀,所以不用加#。如果你加上了,那么它的行为是未定义的,有的编译器支持十进制加#,只不过输出结果和没有加#一样,有的编译器不支持加#,可能会报错,也可能会导致奇怪的输出;但是,大部分编译器都能正常输出,不至于当成一种错误。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【C语言】进制输出加上前缀 的相关文章

  • 【C++笔记】OpenCV图像Mat格式转换为QT中QImage并显示zai Qlabel上

    Mat rgb QImage imgGray img if imgGray channels 1 imgGray img QImage const unsigned char imgGray data imgGray cols imgGra
  • 【C++】Lambda表达式

    C 11的一大亮点就是引入了Lambda表达式 利用Lambda表达式 可以方便的定义和创建匿名函数 对于C 这门语言来说来说 Lambda表达式 或 匿名函数 这些概念听起来好像很深奥 但很多高级语言在很早以前就已经提供了Lambda表达
  • C语言结构体,共用体所占字节数计算

    字节数 环境 char short int long long long float double 指针 windows 32 gcc 1 2 4 4 8 4 8 4 windows 64 gcc 1 2 4 4 8 4 8 8 无符号型在
  • c++智能指针和普通指针之间相互转换

    include
  • 【C++】error LNK2019: 无法解析的外部符号

    转 C error LNK2019 无法解析的外部符号 错误解决方案 今天在实现类模板特例化的时候遇到一个问题 就是把类模板函数实现放到类的cpp文件中 然后在main函数中使用这个类的时候 就会出现无法解析的外部符号 函数名 xxxx 等
  • C/C++函数的本质以及多线程函数的调用过程

    C C 中 函数的本质是一段可执行代码 代码包括了局部变量 全局变量的地址等等 到汇编语言的级别 变量函数等都可以视为汇编的代码片段 函数的本质就是一个可执行代码片段的集合 线程的详细介绍 http www cnblogs com trac
  • 【C++】volatile关键字

    我们都知道当使用编译器时候 编译器会为我们的代码做出一些优化 关于validate关键字的功能和原理我们将用一个例子来给出解释 功能 当一个变量被volidate关键字修饰时 意味着当我们每次使用这个变量时都会从变量所在的内存中去获取 而不
  • c++模板与泛型编程

    函数模板 template
  • c++类模板与继承

    继承中父子类和模板类的结合情况 1 父类是一般类 子类是模板 类 2 父类是模板类 子类是一般类 3 父类和子类都是模板类 1 include
  • C++之函数重载

    目录 1 函数重载 2 函数重载的概念 3 编译器的工作 4 判断函数重载的规则 1 函数的重复声明 2 参数表的比较过程与形参名无关 3 如果在两个函数的参数表中 4 相同的参数列表 5 形参是按值传递方式定义 6 参定义指针或引用 7
  • 【C++笔记】C++11常用特性的使用经验总结

    转载 https www cnblogs com feng sc p 5710724 html title12
  • sort函数的时间、空间复杂度

    sort函数进行排序的时间复杂度为n log2n 原理 不是简单的快排 STL的sort 算法 数据量大时采用Quick Sort 分段递归排序 一旦分段后的数据量小于某个门槛 为避免Quick Sort的递归调用带来过大的额外负荷 就改用
  • C++基础之初始化、输入输出安全问题及常量问题

    一 C 统一初始化 初始化列表 解决方案 例1 int main int a 10 int b 10 int c 10 初始化列表 int arr 10 1 2 4 5 6 int brr 10 1 2 3 4 5 6 int crr 1
  • C++指针的注意事项

    1 定义指针时 切勿忘记初始化 2 当指针作为函数参数时 函数体内记得判空 3 动态申请内存时 不要忘记判断内存申请是否成功 4 勿忘释放内存 并且只释放堆内存 即动态申请的内存 5 内存释放后 记得将指针置空 6 函数返回值一定不要是局部
  • C# new与malloc

    目录 C new与malloc C new与malloc的区别 C new关键字底层做的操作 C new与malloc new关键字 new关键字在C 中用于实例化对象 并为其分配内存 它是面向对象编程的基本操作之一 使用new关键字可以在
  • C语言用牛顿迭代法和二分法递归求解三元一次方程

    求解方程 2x 3 4x 2 3x 6 0 牛顿迭代法 牛顿迭代法公式 以下图片均来源于百度 牛顿迭代法用递归实现解三元一次方程 include
  • C++ 的四种类型转换

    背景 C语言中强制类型转换可以随意转换我们想要的类型 格式如下 类型 变量名 那么为什么C 还要引入新的4种类型转换呢 1 新的类型转换控制符可以很好的控制类型转换的过程 允许控制各种类型不同的转换 2 C 的类型转换控制服能告诉程序员或读
  • C++面试题之继承

    目录 设计一个类型 不能在外部环境中创建该类的对象 设计一个不能被继承的类 设计一个不能被继承的类 但可以在外部环境创建该类型的对象 设计一个能被继承的类 但不能在外部环境创建该类型的对象 限制派生类对象不可以拷贝和赋值如何实现 设计一个类
  • 函数重载 隐藏 重写 覆盖

    重载 Overload 重载是比较容易弄明白的 定义 重载是指不同的函数使用相同的函数名 但是函数的参数个数或类型不同 参数列表不同 调用的时候根据函数的参数来区别不同的函数 函数重载跟返回值无关 规则 函数名相同 必须具有不同的参数列表
  • 二叉树的根到叶子几点之和

    输入 root 1 2 3 输出 25 解释 从根到叶子节点路径 1 gt 2 代表数字 12 从根到叶子节点路径 1 gt 3 代表数字 13 因此 数字总和 12 13 25 输入 root 1 0 1 0 1 0 1 输出 22 解释

随机推荐

  • mongos、nanomsg、zeroMQ简述和go-mongos使用实例

    mongos nanomsg zeroMQ简述和go mongos使用实例 文章目录 mongos nanomsg zeroMQ简述和go mongos使用实例 1 mongos nanomsg简述 2 zeroMQ nanomsg和可扩展
  • dac解码芯片天梯_【关于AK4499引发的思考】选DAC,解码芯片追新有没有必要?

    春风不度玉门关 又见才子伴乐谈 标题这个问题 其实是差不多一年前有人在微博上问我的 彼时是2018年的年底 AKM宣布了其新款旗舰解码芯片AK4499诞生的消息 吸引了玩家群体不小的关注 于是便有人问我 对于准备购置或者更换解码的玩家来说
  • 老年人教程,使用N2N进行异地组网

    一 简介 1 为什么用N2N 在一般情况下 两台机器如果是处在同一个局域网下 那么这两台机器可以通过各自的内网IP进行通信 但是 在某些情况下你可能希望两个不同局域网的机器进行通信 此时 N2N 就能给我们带来一个简单快捷的解决方案 N2N
  • Applovin股价飞涨,同场竞技的汇量或将拿到相同剧本

    全球化 跨行业投资是对冲投资风险 实现超额收益的重要方式 若论什么行业在全球化投资中入门最简单 那一定是互联网 APP 游戏人人都能接触 轻松解决了对商业门槛的理解问题 所有的增长价值一清二楚 但互联网作为一个看起来非常成熟的行业 留给外界
  • visual studio:给项目添加宏定义

    插眼 参考 https blog csdn net lucky fly article details 103321220
  • 浅谈Java Enum作用与应用场景

    在实际应用中 有的变量只有几种可能取值 如人的性别只有两种可能取值 星期只有七种可能取值 在 Java语言中对这样取值比较特殊的变量可以定义为枚举类型 所谓枚举是指将变量的值一一列举出来 变量只限于列举出来的值的范围内取值 枚举是一个特殊的
  • python 列表sort函数和sorted函数应用————实现c++ sort按不同关键字排序功能

    首先基本的应用请参考其它教程 百度很多 现有列表ll 1 2 4 5 8 9 1 1 4 3 8 20 要实现排序 排序规则为 按元组第一个元素降序 如果元祖第一个元素相同按元祖第二个元祖升序 import functools def tc
  • 以太坊执行miner.start返回null( 转载)

    博文地址 http blog csdn net wo541075754 article details 78735711
  • redis之expire命令详解

    expire是设置redis过期时间的命令 需要注意的点有以下几点 expire设置过期时间的单位是秒 如设置name的过期时间为1000秒 expire name 1000 超过时间后会自动删除key 但是不一定是立即删除 因为redis
  • el-select下拉弹窗样式修改

    首先在el select上定义 popper class eloption 和 popper append to body true 使用方法如下面代码段
  • CAN总线隔离器简介

    简介 LCAN OptoAdapter是一款通用插入式电隔离适配器 完全的硬件逻辑设计 可安装在CAN网络的任何位置 快速实现CAN网络之间电隔离 独有的CAN信号调理技术 可以实现改变CAN网络拓扑结构 长支线 增加节点数目等功能 独有的
  • Qt之Q_GLOBAL_STATIC创建全局静态对象

    概述 所谓的全局静态对象 大多是在单例类中所见 之前写过一篇文章介绍如何实现一个单例类 在这里 这是最常见的方式来进行创建 需要自定义 static 类对象 并进行手动初始化 而今天要说的是更简单的方式来实现 Qt 提供了一个非常方便的宏Q
  • Android Bootchart使用

    目录 1 bootchart简介 2 bootchart 在 android 平台的使用步骤 复杂方式 old 3 bootchart 在 android 平台的使用步骤 方便方式 new 4 修改bootchart抓取的停止时间 5 可能
  • 树莓派4串口配置及使用

    文章目录 改变串口的功能 使能串口 重启树莓派 安装minicom 使用minicom通信 编写连接树莓派的代码 打开串口代码 配置串口代码 关闭串口代码 读写串口 改变串口的功能 sudo nano boot cmdline txt 删除
  • intellij-idea每次都需要source bash_profile

    windows用户 为了提高效率我们在 bash profile文件中配置了简写命令 然后我们在JetBrains产品中使用的terminnal终端是git bash 发现每次重新启动JetBrains后都需要执行一下 source bas
  • Unity3D:按键生成物件,Instantia…

    在按下按键之后 可以在画面中生成之前定义好了的物体 这里使用了Instantiate函数来生成 1 先在游戏中定一个空物件GameObject 创建空物件快捷键 ctrl shift n 2 在视图中放置 3 编写脚本 脚本 SpaceCh
  • Ubuntu设置共享文件夹(解决/mnt 目录下没有 hgfs 目录)

    目录 1 Windows创建一个共享文件夹 2 在虚拟机的设置中选择Windows下的共享文件夹 3 在Ubuntu中查看共享文件夹 4 解决 mnt 目录下没有 hgfs 目录 5 设置共享文件夹以后 mnt hgfs下没有出现共享文件夹
  • 2022 ICML 论文合集(附Code和数据集)

    1 Sharp MAML Sharpness Aware Model Agnostic Meta Learning Task 元学习 代码链接 https github com mominabbass sharp maml 数据集 http
  • 链表常见题总结一

    链表可以说是笔试面试的重点 因为写一个链表相关的题可以在短时间写出来 并且考验测试人的水平 特别将平时经常做的链表的题拿上来 做个小结 1 求单链表中结点的个数 2 将单链表反转 3 查找单链表中的倒数第K个结点 k gt 0 4 查找单链
  • 【C语言】进制输出加上前缀

    对于八进制数字 它没法和十进制 十六进制区分 因为八进制 十进制和十六进制都包含 0 7 这几个数字 对于十进制数字 它没法和十六进制区分 因为十六进制也包含 0 9 这几个数字 如果十进制数字中还不包含 8 和 9 那么也不能和八进制区分