如何设置二进制int?

时间:2016-11-20 22:24:39

标签: arduino-uno

我是使用Arduino Uno在C编码的新手。我想做以下事情:

int randomNumber;
int randomNumberBinairy = 0;

void setup() {
 Serial.begin(9600);
 randomSeed(analogRead(A0));
}

void loop() {
  randomNumber = random(1, 16);
  randomNumberBinairy = ((randomNumber, BIN));
  Serial.println(randomNumberBinairy);
  delay(5000);
}

打印出来:

2
2
2
2
etc..

但是我想用二进制打印出随机数(1到16之间)。所以看起来应该是这样的:

101
1100
110
10
etc..

对此有任何帮助吗?

3 个答案:

答案 0 :(得分:1)

在arduino中,您可以使用函数bitRead(x, n)

int randomNumber;

void setup() {
 Serial.begin(9600);
 randomSeed(analogRead(A0));
}

void loop() {
  randomNumber = random(1, 16);
  Serial.print(bitRead(randomNumber, 0));
  Serial.print(bitRead(randomNumber, 1));
  Serial.print(bitRead(randomNumber, 2));
  Serial.println(bitRead(randomNumber, 3));
  delay(5000);
}

答案 1 :(得分:0)

如果您确定它将始终为0,那么您可以编写一个处理16种不同概率的开关盒。对于每个位,它比bitread(x,n)工作得更快。

答案 2 :(得分:0)

仅供您自己参考, Serial.print documentation说:

  

Serial.print(78,BIN)给出“1001110”

     

Serial.print(78,OCT)给出“116”

     

Serial.print(78,DEC)给出“78”

     

Serial.print(78,HEX)给出“4E”

也就是说,如果你想用二进制打印一些内容,那么你只需要 写

Serial.print(randomNumber, BIN);
or
Serial.println(randomNumber, BIN);

就这么简单。