[英]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.