ในระบบคอมพิวเตอร์ เลขฐานสองจะแสดงในระบบเลขฐานสองในขณะที่เลขฐานสิบอยู่ในระบบเลขฐานสิบ เลขฐานสองอยู่ในฐาน 2 ในขณะที่เลขฐานสิบอยู่ในฐาน 10
ตัวอย่างของเลขฐานสิบและเลขฐานสองที่เกี่ยวข้องกันมีดังนี้ -
เลขทศนิยม | เลขฐานสอง |
---|---|
10 | 01010 |
7 | 00111 |
25 | 11001 |
16 | 10000 |
โปรแกรมที่แปลงเลขฐานสองเป็นฐานสิบและเลขฐานสองเป็นเลขฐานสองมีดังนี้
ตัวอย่าง
#include <iostream> using namespace std; void DecimalToBinary(int n) { int binaryNumber[100], num=n; int i = 0; while (n > 0) { binaryNumber[i] = n % 2; n = n / 2; i++; } cout<<"Binary form of "<<num<<" is "; for (int j = i - 1; j >= 0; j--) cout << binaryNumber[j]; cout<<endl; } int BinaryToDecimal(int n) { int decimalNumber = 0; int base = 1; int temp = n; while (temp) { int lastDigit = temp % 10; temp = temp/10; decimalNumber += lastDigit*base; base = base*2; } cout<<"Decimal form of "<<n<<" is "<<decimalNumber<<endl;; } int main() { DecimalToBinary(23); BinaryToDecimal(10101); return 0; }
ผลลัพธ์
Binary form of 23 is 10111 Decimal form of 10101 is 21
ในโปรแกรมที่ระบุข้างต้น มีสองฟังก์ชัน DecimalToBinary และ BinaryToDecimal สิ่งเหล่านี้แปลงตัวเลขจากทศนิยมเป็นไบนารีและไบนารีเป็นทศนิยมตามลำดับ
ในฟังก์ชัน DecimalToBinary ค่าไบนารีของเลขฐานสิบ n จะถูกเก็บไว้ในอาร์เรย์ binaryNumber[] มีการใช้ลูป while และผลลัพธ์ของการดำเนินการ n โมดูลัส 2 จะถูกเก็บไว้ใน binaryNumber[] สำหรับการวนซ้ำแต่ละครั้งของลูป ซึ่งแสดงโดยใช้ข้อมูลโค้ดต่อไปนี้
while (n > 0) { binaryNumber[i] = n % 2; n = n / 2; i++; }
หลังจากนี้ เลขฐานสองจะแสดงโดยใช้ for loop ดังแสดงไว้ดังนี้
cout<<"Binary form of "<<num<<" is "; for (int j = i - 1; j >= 0; j--) cout << binaryNumber[j];
ในฟังก์ชัน BinaryToDecimal() วงในขณะที่ใช้เพื่อแปลงเลขฐานสองเป็นเลขฐานสิบ LastDigit มีบิตสุดท้ายของตัวแปร temp ฐานประกอบด้วยค่าฐานเช่น 2, 4, 6, 8 เป็นต้น DecimalNumber ประกอบด้วยผลรวมของค่า DecimalNumber ก่อนหน้าและผลิตภัณฑ์ของ LastDigit และฐาน
ทั้งหมดนี้แสดงให้เห็นโดยใช้ข้อมูลโค้ดต่อไปนี้ -
while (temp) { int lastDigit = temp % 10; temp = temp/10; decimalNumber += lastDigit*base; base = base*2; }
ในฟังก์ชัน main() จะเรียกฟังก์ชัน DecimalToBinary() และ BinaryToDecimal() ดังแสดงไว้ดังนี้
DecimalToBinary(23); BinaryToDecimal(10101);