最新消息:380元/半年,推荐全网最具性价比的一站式编程学习平台码丁实验室

arduino Byte数据类型和按位运算

Arduino 少儿编程 4856浏览 0评论

友情提示:380元/半年,儿童学编程,就上码丁实验室

arduino Byte数据类型和按位运算Byte数据类型

byte数据类型 占用一个字节的存储空间,取值范围在0到255之间。

byte数据类型可以用来存储二进制数据,很方便。

下面定义一个byte数据类型的变量:

byte outputs=B11111111

前面的B是告诉arduino将该变量读成二进制数字,而不是十进制的255。

例子:

void setup() {

  // put your setup code here, to run once:

Serial.begin(9600);

}

void loop() {

  // put your main code here, to run repeatedly:

for(int i=0;i<256;i++)

{

  Serial.print(“base-10:”);

  Serial.println(i,DEC);

  Serial.print(“base-2:”);

  Serial.println(i,BIN);

  delay(100);

  }

}

串口输出结果如图:

arduino Byte数据类型和按位运算

位操作函数:

    bitRead() 函数读取一个数的位。

    bitRead(x, n) ,X:想要被读取的数;

                             n:被读取的位,0是最重要(最右边)的位,该位的值为0或1

    bitWrite() 函数在位上写入数字变量

    bitWrite(x, n, b)   X:要写入的数值变量;

                               n:要写入的数值变量的位,从0开始是最低(最右边)的位

                               b:写入位的数值(0或1)

例子:

void setup() {

  // put your setup code here, to run once:

Serial.begin(9600);

}

byte a=B10101010;

void loop() {

  // put your main code here, to run repeatedly:

  int  msb=bitRead(a,0);

  int lsb=bitRead(a,7);

  Serial.print(“MSB:”);

  Serial.println(msb);

  Serial.print(“LSB:”);

  Serial.println(lsb);

  delay(500);

  for(int i=0;i<7;i++)

  {

    bitWrite(a,i,0);

    }

    Serial.print(“a=”);

   Serial.println(a,BIN);

   delay(500);

}

运行结果如下:

MSB:0

LSB:1

a=10000000

MSB:0

LSB:1

a=10000000

MSB:0

LSB:1

a=10000000

MSB:0

LSB:1

a=10000000

MSB:0

LSB:1

a=10000000

………..

 

您必须 登录 才能发表评论!