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

时间:2018-02-07 19:42:16

标签: c char hex unsigned-char

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

 unsigned char i = 0x00;

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

1 个答案:

答案 0 :(得分:7)

假设8位到一个字节,<classpathentry exported="true" kind="lib" path="/home/lbullen/Documents/eclipse/plugins/org.junit.jupiter.engine_5.0.0.v20170910-2246.jar"/> 的最大值为255(0xff)。任何超过该算术运算的算术运算都将被模数256截断。

如果您想支持更大的值,请改用unsigned char