【发布时间】:2019-04-29 17:42:04
【问题描述】:
在下面的代码中,变量Speed 的类型为int。它是如何存储在char 类型的两个变量中的?我也不明白// 16 bits - 2 x 8 bits variables 的评论。
你能用类型转换的例子解释一下吗,因为当我运行代码时,它会在类型转换后显示符号
AX12A::turn(unsigned char ID, bool SIDE, int Speed)
{
if (SIDE == LEFT)
{
char Speed_H,Speed_L;
Speed_H = Speed >> 8;
Speed_L = Speed; // 16 bits - 2 x 8 bits variables
}
}
main(){
ax12a.turn(ID,Left,200)
}
【问题讨论】:
-
它将一个 16 位
int拆分为 2 个 8 位chars。示例:0xABCD -> 0xAB and 0xCD。见Bitwise shift operators -
方法签名需要
(unsigned char, bool, int),但您调用的是(unsigned char, int)。你编译过这段代码吗? -
Ax12a.turn(ID,LEFT,200)如何将 200 拆分为 2 个 8 位字符?
-
如果次数将所有数字向左或向右移动给定数字