แปลงจำนวนเต็มจากระบบเลขฐานสิบ (ฐาน-10) เป็นระบบเลขฐานสอง (ฐาน-2) ขนาดของจำนวนเต็มถือว่าเป็น 32 บิต คุณต้องหารตัวเลขด้วยฐาน คอมพิวเตอร์ใช้เพื่อเปลี่ยนค่าจำนวนเต็มเป็นไบต์ที่เป็นคอมพิวเตอร์
Input:10 Output:1010
คำอธิบาย
หากเลขทศนิยมคือ 10
-
เมื่อ 10 หารด้วย 2 ส่วนที่เหลือจะเป็นศูนย์ ดังนั้น 0
-
หาร 10 ด้วย 2 จำนวนใหม่คือ 10/2 =5.
-
เมื่อ 5 หารด้วย 2 ส่วนที่เหลือคือ 1 ดังนั้น 1.
-
หาร 5 ด้วย 2 จำนวนใหม่คือ 5/2 =2
-
เมื่อ 2 หารด้วย 2 ส่วนที่เหลือเป็นศูนย์ ดังนั้น 0
-
หาร 2 ด้วย 2 จำนวนใหม่คือ 2/2 =1
-
เมื่อ 1 หารด้วย 2 ส่วนที่เหลือเป็น 1 ดังนั้น 1.
-
หาร 1 ด้วย 2 ตัวเลขใหม่คือ 1/2 =0
-
ตัวเลขกลายเป็น =0 พิมพ์อาร์เรย์ในลำดับที่กลับกัน เลขฐานสองที่เทียบเท่ากันคือ 1,010
ตัวอย่าง
#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; }