当前位置: 首页 > news >正文

C++(1):整数常量

目录

一、进制表示

二、后缀指定类型

三、示例与注意

四、总结表


一、进制表示

  1. 十进制(Decimal)

    • 格式:无前缀,由数字 0-9 组成。

    • 示例12342

    • 注意:不能以 0 开头(否则会被视为八进制)。

  2. 八进制(Octal)

    • 格式:以 0 为前缀,由数字 0-7 组成。

    • 示例0123(十进制 83)、07

    • 错误示例019(包含非法数字 9)。

  3. 十六进制(Hexadecimal)

    • 格式:以 0x 或 0X 为前缀,由数字 0-9 和字母 A-F(大小写不敏感)组成。

    • 示例0x1A(十进制 26)、0XFF(十进制 255)。

二、后缀指定类型

整数常量可通过后缀组合 U(无符号)和 L(长整型)指定类型:

  1. 后缀规则

    • U 或 u:表示无符号(unsigned)。

    • L 或 l:表示长整型(long)。

    • 可组合使用,顺序和大小写任意,如 ULLUul 等。

    • 示例

      • 123U(无符号整型)

      • 0x1AL(长整型)

      • 42UL(无符号长整型)

  2. 类型确定规则

    • 无后缀:根据值大小自动选择 intlong 或 long long

    • 带 U:选择 unsigned intunsigned long 或 unsigned long long

    • 带 L:选择 long 或 unsigned long(若同时有 U)。

    • 带 LL(扩展):C++11 起支持 long long 类型,后缀为 LL 或 ll

三、示例与注意

  1. 示例

    • 十进制:123 → int(若值在 int 范围内)。

    • 八进制:042 → 十进制 34,类型为 int

    • 十六进制:0x2A → 十进制 42,类型为 int

    • 后缀组合:123ULL → 无符号长整型(unsigned long long)。

  2. 注意

    • 八进制陷阱:避免误用 0 前缀(如 012 是八进制,非十进制 12)。

    • 后缀可读性:建议使用大写后缀(如 UL 而非 ul),避免与数字 1 混淆。

    • 负号问题:负号(-)是运算符,非常量的一部分。例如,-123U 等价于对 123U 取负,结果按无符号规则转换。

    • 类型大小依赖实现long 和 int 的大小由编译器和平台决定(如 32/64 位系统)。

四、总结表

进制前缀合法字符示例后缀组合类型推断规则
十进制0-942ULUL 等最小能容纳值的带符号类型
八进制00-70123同上同上
十六进制0x/0X0-9A-F/a-f0x1F同上同上

http://www.xdnf.cn/news/364141.html

相关文章:

  • Mysql存储引擎
  • 期刊论文写作注意点
  • LVGL源码学习之渲染、更新过程(1)---标记和激活
  • 【C/C++】为什么要noexcept
  • 机器学习第二讲:对比传统编程:解决复杂规则场景
  • 机器学习实操 第二部分 第19章 大规模训练和部署 TensorFlow 模型
  • RPG11.创建玩家Ability类
  • 基于CNN的猫狗图像分类系统
  • 推荐系统(二十五):基于阿里DIN(Deep Interest Network)的CTR模型实现
  • SpringCloud的作用
  • Java高频基础面试题
  • EMC|AC/DC转换器ESD静电防护
  • The 2024 ICPC Kunming Invitational Contest G. Be Positive
  • 【Python-Day 11】列表入门:Python 中最灵活的数据容器 (创建、索引、切片)
  • 【Spring】手动创建Spring|Boot项目
  • 【Golang】gin框架动态更新路由
  • C++--NULL和nullptr的区别
  • ATH12K 驱动框架
  • ch09 题目参考思路
  • 不黑文化艺术学社首席艺术家孙溟㠭浅析“雪渔派”
  • AI赋能智能客服革新:R²AIN SUITE 如何破解医疗行业服务难题?
  • 哈希表扩容怎么处理新插入的值?Swift 是怎么做的?
  • 力扣-19.删除链表的倒数第N个结点
  • Nacos源码—Nacos配置中心实现分析
  • Mysql数据库进阶
  • LMMSE、MMSE和LS
  • vscode 配置doxygen注释和snippet
  • RT-Thread 深入系列 Part 1:RT-Thread 全景总览
  • 【赛元8523触摸按键开发调试】
  • 【vue3】vue3中封装懒加载指令