ด้วยตัวเลขฐานแปดเป็นอินพุต ภารกิจคือการแปลงเลขฐานแปดที่กำหนดให้เป็นเลขฐานสิบ
ตัวเลขทศนิยมในคอมพิวเตอร์จะแสดงด้วยฐาน 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