ด้วยตัวเลขฐานแปดเป็นอินพุต ภารกิจคือการแปลงเลขฐานแปดที่กำหนดให้เป็นเลขฐานสิบ
ตัวเลขทศนิยมในคอมพิวเตอร์จะแสดงด้วยฐาน 10 และเลขฐานแปดจะแสดงด้วยฐาน 8 โดยเริ่มจากหลัก 0 ถึง 7 ในขณะที่ตัวเลขทศนิยมสามารถเป็นตัวเลขใดๆ ก็ได้ตั้งแต่ 0 – 9
ในการแปลงเลขฐานแปดเป็นเลขฐานสิบ ให้ทำตามขั้นตอนเหล่านี้ -
- เราจะแยกตัวเลขเริ่มต้นจากขวาไปซ้ายจนถึงเศษที่เหลือ จากนั้นคูณด้วยกำลังเริ่มต้นจาก 0 และจะเพิ่มขึ้น 1 จนถึง (จำนวนหลัก) – 1
- เนื่องจากเราต้องแปลงจากฐานแปดเป็นเลขฐานสอง ฐานกำลังจึงเป็น 8 เนื่องจากฐานแปดมีฐาน 8
- คูณตัวเลขของอินพุตที่กำหนดด้วยฐานและกำลังและเก็บผลลัพธ์
- เพิ่มค่าที่คูณทั้งหมดเพื่อให้ได้ผลลัพธ์สุดท้ายซึ่งจะเป็นเลขฐานสิบ
ด้านล่างนี้คือการแสดงรูปภาพของการแปลงเลขฐานแปดเป็นเลขฐานสิบ

ตัวอย่าง
Input-: 451 1 will be converted to a decimal number by -: 1 X 8^0 = 1 5 will be converted to a decimal number by -: 5 X 8^1 = 40 4 will be converted to a decimal number by -: 4 X 8^2 = 256 Output-: total = 0 + 40 + 256 = 10
อัลกอริทึม
Start Step 1-> declare function to convert octal to decimal int convert(int num) set int temp = num set int val = 0 set int base = 1 Set int count = temp Loop While (count) Set int digit = count % 10 Set count = count / 10 Set val += digit * base Set base = base * 8 End return val step 2-> In main() set int num = 45 Call convert(num) Stop
ตัวอย่าง
#include <iostream>
using namespace std;
//convert octal to decimal
int convert(int num) {
int temp = num;
int val = 0;
int base = 1;
int count = temp;
while (count) {
int digit = count % 10;
count = count / 10;
val += digit * base;
base = base * 8;
}
return val;
}
int main() {
int num = 45;
cout <<"after conversion value is "<<convert(num);
} ผลลัพธ์
หากเราเรียกใช้โค้ดข้างต้น จะเกิดผลลัพธ์ดังต่อไปนี้
after conversion value is 37