简体   繁体   English

如何在 arduino 中将八进制数转换为十进制数?

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

My problem is converting octal number to decimal number print using Arduino functions.我的问题是使用 Arduino 函数将八进制数转换为十进制数打印。

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

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

Use the format parameter described in reference manual for println :使用println参考手册中描述的格式参数:

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

Something like:就像是:

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

Output: Output:

Octal Number = 41

as the octal value of the decimal number 33 is 41 .因为十进制数33的八进制值为41
If instead you meant defining octalNum using an octal constant, in the first place, just remember that octal constants are defined inserting an heading 0 :相反,如果您的意思是使用八进制常量定义octalNum ,首先,请记住八进制常量是在插入标题0时定义的:

int octalNumber = 033; // decimal 27

Please note how OctalNum is just stored as an integer, and this has nothing to do with the way is printed later.请注意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