dunsigned char,无符号字符类型,取值范围是(0-255)。看下一个例子:
int main()
{
unsigned char i=255;
printf("%d/n",i);
printf("%d/n",++i);
return 0;
}
i加1后,值不是256,而是0
就是没有符号的意思
说白了,就都是正数
由于在计算机中,整数是以补码形式存放的
所以根据最高位的不同
如果是1,有符号数的话就是负数拉
如果是无符号数,则都解释为正数,同时在相同位数的情况下,所能表达的整数范围变大
another sample:
there are two int variables: a and b,don't use "if", "?:", "switch" or other judgement statements, find out the biggest one of the two numbers.
Method 1:
int max = ((a+b) + abs(a-b))/2
Method2:
int c = a - b;
char * strs[2] = {"a bigger", "b bigger"};
c = unsigned(c) >> (sizeof(int) * 8 - 1); //1 or 0
printf("%s", strs[c]);
本文详细介绍了无符号字符类型dunsignedchar的特点与取值范围(0-255)。通过实例展示当数值达到最大值255后再加1时如何变为0。此外还提供了两个不使用条件判断语句寻找两个整数变量中较大值的方法。
1216

被折叠的 条评论
为什么被折叠?



