无符号字符在增加16时从f0变为00

Mat*_*ham 2 c hex char unsigned-char

我目前正在用C语言编写程序.我的程序中i声明了一个变量.我已将其初始化为:

 unsigned char i = 0x00;
Run Code Online (Sandbox Code Playgroud)

接下来,我有一个while循环,在while循环中,我将增加unsigned char16并将其显示为七位数(例如0000080).好吧,这对于前16个值完全正常运行,但每当unsigned char到达00000f0并再次递增时,它就会返回到0000000.为什么这样,我如何更改我的代码来解决这个问题?提前致谢.

dbu*_*ush 7

unsigned char假设8位到一个字节,An 的最大值为255(0xff).超过该算术运算的任何算术运算都以256为模截断.

如果要支持更大的值,请unsigned int改用.

  • @MatthewVanlandingham详细说明:`char`不是"只有8位".`char`通常是"8位".在特定平台上,它们更广泛. (3认同)