我正在使用ROBOTC编写我的机器人的程序,我使用的是由其他人构建的代码。在一个函数中,我看到了一行:
int leftDir = (left>0)*2-1;leftDir被初始化为整数,那么>会做什么呢?我的印象是,这是一个二元转换,但我不确定。有人能解释一下吗?谢谢。
发布于 2013-10-25 19:13:08
>是greater than运算符。在C中,比较的结果要么是1表示true,要么是0表示false。换句话说,上面的代码在逻辑上相当于(但更紧凑):
int leftDir;
if (left > 0) {
leftDir = 1;
} else {
leftDir = -1;
}发布于 2014-01-11 17:05:47
前面的答案是正确的,但我相信他的意思是有点变化无常。这是有意义的,因为他继续把这个值乘以一个数字,这意味着他没有把它当作一个布尔值。不过,他对roobtc位移位表示法的看法是错误的。如果要在robotc中移动数字,请使用以下语法:
int foo = 0b00001111 >> 2; //bit shifts the bianary number 00001111 over by two bits, so foo will be set to the result 00000011https://stackoverflow.com/questions/19597620
复制相似问题