我们可以分配一个unsigned int变量,0xFULL文字

cmi*_*idi -1 c c++

我想了解以下两个定义之间的区别

unsigned long long id = 0x0FULL; //should be correct
unsigned int store = 0X0FULL;  // ?? Can this be done 

printf("id is : 0x%llx store is : 0x%x\n",id,store);
Run Code Online (Sandbox Code Playgroud)

两个变量的输出返回相同的值

id is : 0xf store is : 0xf
Run Code Online (Sandbox Code Playgroud)

小智 5

碰巧拼出一个单词只是巧合.该ULL后缀意味着你有一个unsigned long long文字,以及0xF或者0x0F你已经知道:那是15,除了以十六进制表示.

  • @cmidi我的意思是小数15,用十六进制表示.我看到我措辞有点令人困惑.`unsigned int store = 0x0FULL;`有效但很奇怪.它是有效的,因为在任何两个整数类型之间存在隐式转换,包括从`unsigned long long`到`unsigned int`.这很奇怪,因为如果你想要一个`unsigned int`,你为什么要使用`ULL`后缀? (2认同)

fre*_*low 5

0x0f是int值为 15 的 。

0x0full是unsigned long long值为 15 的 。