C++(1):整数常量

[复制链接]
发表于 2025-9-12 00:49:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
目录

一、进制表示
二、后缀指定范例
三、示例与注意
四、总结表


一、进制表示


  • 十进制(Decimal)

    • 格式:无前缀,由数字 0-9 组成。
    • 示例:123、42。
    • 注意:不能以 0 开头(否则会被视为八进制)。

  • 八进制(Octal)

    • 格式:以 0 为前缀,由数字 0-7 组成。
    • 示例:0123(十进制 83)、07。
    • 错误示例:019(包罗非法数字 9)。

  • 十六进制(Hexadecimal)

    • 格式:以 0x 或 0X 为前缀,由数字 0-9 和字母 A-F(大小写不敏感)组成。
    • 示例:0x1A(十进制 26)、0XFF(十进制 255)。

二、后缀指定范例

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

  • 后缀规则:

    • U 或 u:表示无符号(unsigned)。
    • L 或 l:表示长整型(long)。
    • 可组合利用,顺序和大小写任意,如 UL、LU、ul 等。
    • 示例:

      • 123U(无符号整型)
      • 0x1AL(长整型)
      • 42UL(无符号长整型)


  • 范例确定规则:

    • 无后缀:根据值大小自动选择 int、long 或 long long。
    • 带 U:选择 unsigned int、unsigned long 或 unsigned long long。
    • 带 L:选择 long 或 unsigned long(若同时有 U)。
    • 带 LL(扩展):C++11 起支持 long long 范例,后缀为 LL 或 ll。

三、示例与注意


  • 示例:

    • 十进制:123 → int(若值在 int 范围内)。
    • 八进制:042 → 十进制 34,范例为 int。
    • 十六进制:0x2A → 十进制 42,范例为 int。
    • 后缀组合:123ULL → 无符号长整型(unsigned long long)。

  • 注意:

    • 八进制陷阱:避免误用 0 前缀(如 012 是八进制,非十进制 12)。
    • 后缀可读性:建议利用大写后缀(如 UL 而非 ul),避免与数字 1 肴杂。
    • 负号问题:负号(-)是运算符,非常量的一部门。例如,-123U 等价于对 123U 取负,效果按无符号规则转换。
    • 范例大小依靠实现:long 和 int 的大小由编译器和平台决定(如 32/64 位系统)。

四、总结表

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

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表