从signed char到sign int的符号扩展如何工作?

0xh*_*ker 2 c signed type-conversion

为什么255由signed char表示的值会转换为-1整数?我看到一个mov sbl正在使用的指令x86转换成一个签名char来签署的int,但为什么它在现在这样的方式转换?

R..*_*R.. 6

假设一个8位字符,一个类型的对象signed char永远不会有一个255.当你为这样一个对象分配255时,它会以一种实现定义的方式转换(实际上,它总是以模256的形式递减到范围内).因此,此时它已经具有值-1.将其转换为类型int根本不会发生任何变化.