ในระบบคอมพิวเตอร์ เลขฐานสองจะแสดงในระบบเลขฐานสองในขณะที่เลขฐานแปดอยู่ในระบบเลขฐานแปด เลขฐานสองอยู่ในฐาน 2 ในขณะที่เลขฐานแปดอยู่ในฐาน 8
ตัวอย่างของเลขฐานสองและเลขฐานแปดที่เกี่ยวข้องมีดังนี้ -
เลขฐานสอง | เลขฐานแปด |
---|---|
01101 | 15 |
00101 | 5 |
10110 | 26 |
01010 | 12 |
โปรแกรมที่แปลงเลขฐานแปดเป็นเลขฐานสองมีดังต่อไปนี้ -
ตัวอย่าง
#include <iostream> #include <cmath> using namespace std; int OctalToBinary(int octalNum) { int decimalNum = 0, binaryNum = 0, count = 0; while(octalNum != 0) { decimalNum += (octalNum%10) * pow(8,count); ++count; octalNum/=10; } count = 1; while (decimalNum != 0) { binaryNum += (decimalNum % 2) * count; decimalNum /= 2; count *= 10; } return binaryNum; } int main() { int octalNum = 33; cout <<"Octal to Binary"<<endl; cout<<"Octal number: "<<octalNum<<endl; cout<<"Binary number: "<<OctalToBinary(octalNum)<<endl; return 0; }
ผลลัพธ์
ผลลัพธ์ของโปรแกรมข้างต้นเป็นดังนี้ −
Octal to Binary Octal number: 33 Binary number: 11011
ในโปรแกรมที่กำหนด ฟังก์ชัน OctalToBinary() จะแปลงเลขฐานแปดที่กำหนดให้เป็นเลขฐานสอง ซึ่งทำได้โดยการแปลงเลขฐานแปดเป็นเลขฐานสิบก่อนแล้วจึงแปลงเลขฐานสิบเป็นเลขฐานสอง ดังจะเห็นได้จากตัวอย่างโค้ดต่อไปนี้ −
int OctalToBinary(int octalNum) { int decimalNum = 0, binaryNum = 0, count = 0; while(octalNum != 0) { decimalNum += (octalNum%10) * pow(8,count); ++count; octalNum/=10; } count = 1; while (decimalNum != 0) { binaryNum += (decimalNum % 2) * count; decimalNum /= 2; count *= 10; } return binaryNum; }
ในฟังก์ชัน main() จะมีการกำหนดเลขฐานแปด จากนั้นเลขฐานสองที่เกี่ยวข้องจะคำนวณโดยการเรียก OctalToBinary() ด้านล่างนี้ −
int main() { int octalNum = 33; cout <<"Octal to Binary"<<endl; cout<<"Octal number: "<<octalNum<<endl; cout<<"Binary number: "<<OctalToBinary(octalNum)<<endl; return 0; }