簡體   English   中英

如何在 arduino 中將八進制數轉換為十進制數?

[英]How to convert Octal number to decimal number in arduino?

我的問題是使用 Arduino 函數將八進制數轉換為十進制數打印。

int octalNum = 33;
int decimalNumb = 0;
void setup()
{
    Serial.begin(9600);
}

void loop()
{
    Serial.println("Octal Number = "+octalNum);
    Serial.println("Decimal Number = "+decimalNumb);
}

使用println參考手冊中描述的格式參數:

Serial.println(analogValue, OCT);  // print as an ASCII-encoded octal

就像是:

Serial.print("Octal Number = ");
Serial.println(octalNum , OCT);

Output:

Octal Number = 41

因為十進制數33的八進制值為41
相反,如果您的意思是使用八進制常量定義octalNum ,首先,請記住八進制常量是在插入標題0時定義的:

int octalNumber = 033; // decimal 27

請注意OctalNum是如何存儲為 integer 的,這與后面打印的方式無關。

int octalNum = 33;
int decimalNumb = 0;
void setup()
{
  Serial.begin(9600);
}

void loop()
{
      Serial.println("Octal Number = "+octalNum);
     Serial.println("Decimal Number = "+octalToDecimal(decimalNumb));
}
static int octalToDecimal(int n) 
{ 
        int num = n; 
        int dec_value = 0; 
        int base = 1; 
        int temp = num; 
        while (temp > 0) { 
            int last_digit = temp % 10; 
            temp = temp / 10; 
            dec_value += last_digit * base; 
            base = base * 8; 
        } 
        return dec_value; 
} 
  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM