📜  C C++中的整数字面量(前缀和后缀)(1)

📅  最后修改于: 2023-12-03 14:39:37.755000             🧑  作者: Mango

C/C++中的整数字面量(前缀和后缀)

整型字面量是C/C++中用于表示整数值的常量,它可以通过添加前缀或后缀来指定不同的整型类型或值。

前缀

在C/C++中,可以使用以下前缀来指定整型字面量的类型:

  • 0x:十六进制表示法,例如0x1F表示31。
  • 0:八进制表示法,例如037表示31。
  • 0b:二进制表示法(C++14标准及以上),例如0b11111表示31。
后缀

在C/C++中,可以使用以下后缀来指定整型字面量的类型:

  • Uu:无符号整型,例如123U表示无符号整数123。
  • Ll:长整型,例如123456L表示长整数123456。
  • LLll:长长整型,例如123456789LL表示长长整数123456789。
  • ULul:无符号长整型,例如12345678UL表示无符号长整数12345678。

在C++11标准及以上,还引入了以下后缀来指定整数的二进制位数:

  • ULLull:无符号长长整型,例如0b1111ULL表示二进制位数为4的无符号长长整数。

同时,还可以使用以下后缀来指定整数的数据类型,这些后缀在C++17标准及以上可用:

  • i:带符号整型,例如1234i表示带符号整数1234。
  • ui:无符号整型,例如1234ui表示无符号整数1234。
  • l:long整型,例如1234l表示long整数1234。
  • ul:无符号long整型,例如1234ul表示无符号long整数1234。
  • ll:long long整型,例如1234ll表示long long整数1234。
  • ull:无符号long long整型,例如1234ull表示无符号long long整数1234。
示例

以下是一些使用前缀和后缀指定的整型字面量的示例:

int decimal = 42;       // 十进制整型,默认为有符号整数
int hex = 0x2A;         // 十六进制整型,等同于42
int octal = 052;        // 八进制整型,等同于42
int binary = 0b101010;  // 二进制整型,等同于42

unsigned int uDecimal = 42U;         // 无符号十进制整型
long lDecimal = 42L;                 // 长整型
long long llDecimal = 42LL;          // 长长整型
unsigned long ulDecimal = 42UL;      // 无符号长整型
unsigned long long ullDecimal = 42ULL;// 无符号长长整型

int bin4Bit = 0b1111i;               // 二进制位数为4的带符号整型

以上就是C/C++中整型字面量的前缀和后缀的详细介绍。通过使用不同的前缀和后缀,可以灵活地指定整型字面量的类型和数值范围,从而满足不同的编程需求。