读书人

强制类型转换的有关问题

发布时间: 2012-11-10 10:48:51 作者: rapoo

强制类型转换的问题

C/C++ code
#include <stdio.h>int main(void){    short j = 385;     char c = (char)j;            //unsigned char c = (unsigned char)j; c = 129;    printf("%d\n", c);    return 0;}

c怎么会是-127呢,二进制为10 00 00 01,16进制为0x81,实在想不明白怎么是-127....

[解决办法]
signed char的范围-128~127。
unsigned char的范围0~255。

[解决办法]
越界了
unsigned char的范围是0到255
255的signed char是-127
[解决办法]
探讨

引用:

signed char的范围-128~127。
unsigned char的范围0~255。

如果是signed char的话,应该是-1吧.

读书人网 >C++

热点推荐