当递增 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
。
我目前正在用 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
。