【发布时间】:2017-11-10 14:44:12
【问题描述】:
我想知道类型转换在类型之间的实践中是如何工作的(在“嵌入式”C 中)。例如:如果我有一个值为-80d、11010000b 的Signed 16-bit 数字,并且我想将其转换为unsigned 16-bit。我得到的值是80d,还是208。
我的意思是,转换是按位还是算术?只是对位的解释发生了变化,还是转换真的改变了位?
如果它确实改变了位,我将如何以这种方式做到这一点只是解释发生变化。例如,当我从 i2c 设备读取 u8 值并且必须将位解释为一个有符号的值。
最后,实际上与上面相同:如果它不更改位,我将如何转换它以更改位而不是值?
亲切的问候, 杰西
【问题讨论】:
-
这是在C标准here中精确定义的
-
-80 不是
11010000,而是11111111 11010000。有16位,编号为sign extended。
标签: c