当递增 16 时,unsigned char 从 f0 变为 00

Unsigned char goes from f0 to 00 when incremented by 16

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

 unsigned char i = 0x00;

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

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

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