C++(1):整数常量

目录

一、进制表示

二、后缀指定类型

三、示例与注意

四、总结表


一、进制表示

  1. 十进制(Decimal)

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

    • 示例 :123、42。

    • 注意 :不能以 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)。

    • 可组合使用,顺序和大小写任意,如 UL、LU、ul 等。

    • 示例:

      • 123U(无符号整型)

      • 0x1AL(长整型)

      • 42UL(无符号长整型)

  2. 类型确定规则:

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

    • 带 U :选择 unsigned int、unsigned 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-9 42 U、L、UL 等 最小能容纳值的带符号类型
八进制 0 0-7 0123 同上 同上
十六进制 0x/0X 0-9、A-F/a-f 0x1F 同上 同上
相关推荐
代钦塔拉2 分钟前
【C++/Qt 进阶】设计模式系列(5):适配器模式——给“不兼容的接口“贴一层翻译膜
c++·qt·设计模式
aqiu1111115 分钟前
蓝桥杯真题复盘:Fibonacci 数列与黄金分割(C++ 算法详解)
c++·算法·蓝桥杯
码途行者8 分钟前
处理超时未支付订单:两套轻量化方案,附 PHP 极简实现
开发语言·redis·php
lojox10 分钟前
C++ 手写 STL list(双向循环链表)原理剖析与实现
c++·链表·list
云和数据.ChenGuang12 分钟前
LangChain 实战指南:从入门到构建智能应用
开发语言·人工智能·python·langchain
青少儿编程课堂14 分钟前
蓝桥杯·全国青少年信息素养大赛·电子学会C/C++考级:拓扑排序课程表排课解析
c++·python·算法·bfs·信息学竞赛
const_qiu14 分钟前
第三章 04:3.6 基础调用链的构建
开发语言·python
向上的车轮16 分钟前
Python 大数据处理不慢:Polars + DuckDB + Arrow 实战指南
开发语言·python
Nebula_g21 分钟前
云禾外卖补充—项目整体后端运行逻辑-对流程的更深层次理解
java·开发语言·网络·数据库·状态模式·javase
暖焰核心34 分钟前
二叉搜索树——从插入查到key-value改写
c++