Arduino練習作業:寫兩個程序,第壹個用unsigned long int做變量,輸出變量轉為二進制後占的bit數。
第二個用signed long int做變量,同樣輸出二進制所占bit數。
適用0以上正整數,0需要額外加判斷
*/
# include <Arduino.h>
int count_bits(unsigned long x){
int count =1 ;
while(count <=32){
if( x == 1){ // 判斷x是否是1, 是則返回位數,不是x向右位移,直到最高位那個1
return count;
}
else{
count++;
x=x>>1;
}
}
}
void setup(){
Serial.begin(9600);
}
void loop(){
Serial.println(count_bits(1)); //
Serial.println(count_bits(2)); //
Serial.println(count_bits(3)); //
Serial.println(count_bits(4)); //
Serial.println(count_bits(8)); //
Serial.println(count_bits(16)); //
Serial.println(count_bits(32)); //
Serial.println(count_bits(35)); //
delay(1000);
}