ในระบบคอมพิวเตอร์ เลขฐานแปดจะแสดงในระบบเลขฐานแปดในขณะที่เลขฐานสิบอยู่ในระบบเลขฐานสิบ เลขฐานแปดอยู่ในฐาน 8 ในขณะที่เลขฐานสิบอยู่ในฐาน 10
ตัวอย่างของเลขฐานสิบและเลขฐานแปดที่เกี่ยวข้องมีดังนี้
เลขทศนิยม | เลขฐานแปด |
---|---|
8 | 10 |
70 | 106 |
25 | 31 |
7 | 7 |
โปรแกรมที่แปลงเลขฐานสิบเป็นฐานแปดมีดังนี้
ตัวอย่าง
#include <iostream> using namespace std; void DecimalToOctal(int decimalNum) { int octalNum = 0, placeValue = 1; int dNo = decimalNum; while (decimalNum != 0) { octalNum += (decimalNum % 8) * placeValue; decimalNum /= 8; placeValue *= 10; } cout<<"Octal form of decimal number "<<dNo<<" is "<<octalNum<<endl; } int main() { DecimalToOctal(70); return 0; }
ผลลัพธ์
Octal form of decimal number 70 is 106
ในโปรแกรมข้างต้น ฟังก์ชัน DecimalToOctal จะแปลงตัวเลขทศนิยมให้เป็นฐานแปด ในฟังก์ชัน DecimalToOctal ในขั้นต้น ตัวแปร octalNum จะเริ่มต้นเป็นศูนย์ ตัวแปร placeValue หมายถึงตำแหน่งของตัวเลขในตัวเลข พบค่าของ octalNum โดยใช้ลูป while
สำหรับการวนซ้ำแต่ละครั้งของลูป while decimalNum จะถูกหารด้วย 8 และส่วนที่เหลือจะถูกคูณด้วย placeValue ซึ่งถูกเพิ่มเข้าไปในค่าก่อนหน้าของ octalNum decimalNum ยังถูกหารด้วย 8 และผลหารจะถูกเก็บไว้กลับ placeValue คูณด้วย 10
ข้อมูลโค้ดที่แสดงสิ่งนี้มีดังนี้
while (decimalNum != 0) { octalNum += (decimalNum % 8) * placeValue; decimalNum /= 8; placeValue *= 10; }
หลังจากค่าเลขฐานแปดนั่นคือ octalNum มีค่าเป็นไข่ ค่านั้นจะปรากฏขึ้น ด้านล่างนี้ −
cout<<"Octal form of decimal number "<<dNo<<" is "<<octalNum<<endl;
ฟังก์ชัน main() มีเฉพาะการเรียกใช้ฟังก์ชันไปยัง DecimalToOctal() ด้วยค่าที่จำเป็น สิ่งนี้แสดงให้เห็นโดยข้อมูลโค้ดต่อไปนี้
DecimalToOctal(70);