- 论坛徽章:
- 0
|
原帖由 nikshuang 于 2009-7-13 11:32 发表 ![]()
代码如下:
unsigned int a;
char b = 0xff;
a = b;
printf("a: %d\n", a);
程序运行结果: a: -1
我不明白,这里b的值是-1,而a的数据类型是无符号的,取值范围应是从0开始的,怎么也能存储负数呢, ...
#include <stdio.h>
#include <string.h>
int main()
{
unsigned int m=0,n=0;
unsigned char ch1= 0xff;
signed char ch2 = 0xff;
n = ch1;
m = ch2;
printf("unsigned char 0xff=[%0x]=[%u]\n",ch1,n);
printf("signed char 0xff=[%0x]=[%u]\n",ch2,m);
return 0;
} |
|
|