C语言中高8位低8位问题

来源:百度知道 编辑:UC知道 时间:2024/05/05 07:43:48
我是C初学者字符型数据赋给整型变量时,由于字符只占1个字
节,而整型变量为2个字节,因此将字符数据(8个
二进位)放到整型变量存储单元的低8位中。
把字符‘\376’赋给int型变量i怎么赋给int 请详细解释下及过程
有没有对于初学者提供些网站进行学习

把8位二进制赋值给16位二进制的时候,要进行高位扩展。

例如把0xxxxxxx赋值给16位变量的结果是00000000 0xxxxxxx

再入把1xxxxxxx赋值给16位变量的结果是11111111 1xxxxxxx

所以,你看看下面的程序:
main()
{
char c='\376';
int i=c;
printf("c=%d,i=%d\n",c,i);
}

允许的结果是:
c=-2,i=-2

你能够理解吧。