
c
predisw
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
char 类型的整型提升
unsigned char a, b;a = 0x0f;b = (~a) >> 4;printf("0x%x", b);输出为0xff; 因为 (~a) 被提升为 int 型的取反运算。 对于 MinGW gcc,int 型是 32 位, 因此 (~a) = 0xff ff ff f0, 所以截取后 b = 0xff。第二个例子:#include <stdio.h>int ma原创 2015-11-28 16:33:52 · 1492 阅读 · 0 评论 -
c 中无符号数相减依然是无符号数
int main(void){ unsigned int a=10; unsigned int b=11; if((a-b)>=0){ printf("%d \n",(a-b)); } }输出为: -1 也就是说 无符号数相减的值为 -1 ,但是依然被视为无符号数. 无符号数是大于等于0的,所以 -1>=0 就是true.原创 2015-11-30 15:03:30 · 2440 阅读 · 2 评论