Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ แปลงเลขฐานสิบเป็น Octal


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