ในระบบคอมพิวเตอร์ เลขฐานแปดจะแสดงในระบบเลขฐานแปดในขณะที่เลขฐานสิบอยู่ในระบบเลขฐานสิบ เลขฐานแปดอยู่ในฐาน 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);