แปลงจำนวนเต็มจากระบบฐานสิบ (Decimal/Base-10) เป็นระบบฐานสอง (Binary/Base-2) สมมติขนาด Integer 32 บิต ต้องหารด้วยฐาน (2) ซ้ำๆ ใช้โดยคอมพิวเตอร์แปลงค่า Integer เป็น Byte
Input: 10 Output: 1010
คำอธิบาย
ถ้าตัวเลขทศนิยมคือ 10
- 10 หาร 2 เหลือ 0 -> 0
- 10/2 = 5
- 5 หาร 2 เหลือ 1 -> 1
- 5/2 = 2
- 2 หาร 2 เหลือ 0 -> 0
- 2/2 = 1
- 1 หาร 2 เหลือ 1 -> 1
- 1/2 = 0
- จบการหาร พิมพ์เศษจากหลังมาหน้า ได้ 1010
ตัวอย่าง
#include <iostream>
using namespace std;
int main() {
long n, d, r, binary = 0;
n = 10;
d = n;
int temp = 1;
while (n != 0) {
r = n % 2;
n = n / 2;
binary = binary + r * temp;
temp = temp * 10;
}
printf("%ld", binary);
return 0;
}