c++二进制、八进制、十六进制表示法 c++数字字面量【技巧】
技术百科
尼克
发布时间:2025-12-27
浏览: 次 C++数字字面量支持二进制(0b/0B,C++14起)、八进制(0开头)和十六进制(0x/0X),分别用于位操作、传统兼容和硬件交互;支持分隔符('或_)及类型后缀(U/L/LL)以提升可读性与类型安全性。
在C++中,数字字面量支持二进制、八进制和十六进制表示,方便底层编程、位操作和硬件交互。掌握这些写法能提升代码可读性与准确性,避免手动换算出错。
二进制字面量(C++14起支持)
以 0b 或 0B 开头,后跟 0 和 1 的序列。编译器直接识别为整数,类型由值大小和上下文决定(默认 int,超限则为 long 或 long long)。
- 0b1010 等价于十进制 10
- 0b1111'1111(带撇号分隔)等价于 255,提高长二进制的可读性
- 支持负号:-0b101 表示 -5
八进制字面量(传统支持)
以 0 开头(注意:是数字零,不是字母 O),后跟 0–7 的数字。容易误写,需特别留
意。
- 012 是八进制,等于十进制 10(不是 12)
- 0 单独出现也表示八进制零,等价于十进制 0
- 含数字 8 或 9 会编译报错:018 非法
十六进制字面量(广泛使用)
以 0x 或 0X 开头,后跟 0–9、a–f(或 A–F)。不区分大小写,常用于内存地址、颜色值、掩码等场景。
- 0xFF = 255,0x1A = 26
- 支持下划线分隔(C++14起):0x1234_5678
- 可加后缀指定类型:0xFFU(unsigned)、0x100000000LL(long long)
类型推导与后缀技巧
字面量默认类型可能引发隐式转换问题,尤其在模板或重载函数中。显式添加后缀更安全:
- 无符号:123U、0xFFU、0b1010U
- 长整型:123L、0xFFFFL
- 长长整型:123LL、0b1111'1111'1111'1111LL
- 浮点字面量不能用进制前缀(如 0xFF.0 不合法),必须用十进制+指数形式
# 下划线
# c++
# 隐式转换
# int
# 报错
# 隐式
# 整型
# 则为
# 掩码
# 不能用
# 分隔符
# 浮点
# 代码可读性
# 重载函数
# 不合法
相关栏目:
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
AI推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
SEO优化<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
技术百科<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
谷歌推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
百度推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
网络营销<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
案例网站<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
精选文章<?muma echo $count; ?>
】
相关推荐
- c++如何打印函数堆栈信息_c++ backtra
- Python技术债务管理_长期维护解析【教程】
- Python路径拼接规范_跨平台处理说明【指导】
- Win11如何关闭小娜Cortana Win11禁
- Mac怎么查看活动监视器_理解Mac进程和资源占用
- Win10如何更改开机密码_Windows10登录
- 如何在Golang中实现文件下载_Golang文件
- C#如何在一个XML文件中查找并替换文本内容
- Win10怎么关闭自动更新错误弹窗_Win10策略
- XML的“混合内容”是什么 怎么用DTD或XSD定
- 如何在 Go 中创建包含映射(map)的切片(sl
- 如何使用正则表达式精确匹配最多含一个换行符的 st
- WindowsUSB驱动安装异常怎么办_USB驱动
- Windows 10怎么录屏_Windows 10
- Win11怎么设置任务栏对齐方式_Windows1
- Python安全爬虫设计_IP代理池与验证码识别策
- Win11怎么关闭通知中心_Windows11系统
- C++如何将C风格字符串(char*)转换为std
- PHP主流架构怎么处理表单验证_规则与自定义【技巧
- php怎么下载安装并配置环境变量_命令行调用PHP
- Mac怎么进行语音输入_Mac听写功能设置与使用【
- C++ STL算法库怎么用?C++常用算法函数(s
- Python模块的__name__属性如何由导入方
- 微信JSAPI支付回调PHP怎么接收_处理JSAP
- Win11怎么格式化U盘_Win11系统U盘格式化
- Django密码修改后会话失效的解决方案
- Win11如何添加/删除输入法 Win11切换中英
- Win10怎么创建桌面快捷方式 Win10为应用创
- windows如何测试网速_windows系统网络
- Win11任务栏怎么固定应用 Win11将软件图标
- Mac如何使用听写功能_Mac语音输入打字【效率技
- Windows10如何更改日期格式_Win10区域
- Windows10系统怎么查看设备管理器_Win1
- Go 语言标准库为何不提供泛型 Contains
- 如何将竖排文本文件转换为横排字符串
- Win11色盲模式怎么开_Win11屏幕颜色滤镜设
- C++中的std::shared_from_thi
- Win11无法拖拽文件到任务栏怎么办_Win11开
- Python大文件处理策略_内存优化说明【指导】
- 如何使用Golang实现文件加密_Golang c
- Windows驱动无法加载错误解决方法_驱动签名验
- 如何使用Golang log设置日志输出格式_Go
- C++如何使用std::transform批量处理
- MAC怎么在照片中添加水印_MAC自带编辑工具文字
- Win10如何备份注册表_Win10注册表备份步骤
- Win10如何备份驱动程序_Win10驱动备份步骤
- 如何在 Go 中正确初始化结构体中的 map 字段
- Win11怎么设置指纹解锁 Win11笔记本录入指
- Win11触摸板没反应怎么办_开启Win11笔记本
- PHP中require语句后直接调用返回对象方法的

QQ客服