对于一个 16 位的整型变量,你能给这个变量赋值 72368 的整数值吗?

For a 16-bit integer variable, can you assign the variable with an integer value of 72368?

你能详细解释一下吗?

否,因为您可以用 16 位编码的最大值是 65535

您可以尝试,但如果赋值成功,它不会存储您的原始数字的全部,因为要准确表示它需要超过 16 位。

16位整数中的最高位是第215位。 2 的十五次方是 32768。将 16 位设置为全 1 将产生 65535 (32768 * 2 - 1),如果整数是无符号的,那么这是您可以可靠分配的最大数字。

无论如何,这很容易测试:

#include <stdio.h>

int main(void) {
  unsigned short i = 72368;
  printf("%d\n", i); // 6832
  return 0;
}

请注意,72368 被解释为 int,并且隐式转换为 unsigned short,尽管编译器会警告您。 Try it online.