在C,我想一个转换signed char到int,没有符号扩展.因此,如果signed char是0xFF,int那么也将是0xFF.简单地转换为int是行不通的; 结果将是0xFFFFFFFF(在32位机器上).
这似乎有效(并且已经非常简单):
int convert(signed char sc) {
return 0xFF & (int) sc;
}
Run Code Online (Sandbox Code Playgroud)
但是有更简单或更惯用的方式吗?
编辑:固定功能
Car*_*rum 15
你可以先铸就unsigned char.假设一个定义:
signed char c;
Run Code Online (Sandbox Code Playgroud)
你可以这样做:
int i = (unsigned char)c;
Run Code Online (Sandbox Code Playgroud)