相关疑难解决方法(0)

在C左移(char)0xFF由8并将其转换为int

在(char)0xff的左移8,并将其转换为int,我们得到-256或0xffffff00.有人可以解释为什么会这样吗?

#include <stdio.h>
int main (void)
{   
    char c = 0xff;
    printf("%d %x\n", (int)(c<<8),(int)(c<<8));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出是

-256 ffffff00
Run Code Online (Sandbox Code Playgroud)

c signed char shift

12
推荐指数
2
解决办法
2万
查看次数

标签 统计

c ×1

char ×1

shift ×1

signed ×1