Không có specifier định dạng trực tiếp cho điều này bằng ngôn ngữ C. Mặc dù tôi đã viết đoạn mã python nhanh này để giúp bạn hiểu từng bước để tự cuộn.
#!/usr/bin/python
dec = input("Enter a decimal number to convert: ")
base = 2
solution = ""
while dec >= base:
solution = str(dec%base) + solution
dec = dec/base
if dec > 0:
solution = str(dec) + solution
print solution
Giải thích:
Tháng Mười Hai = input ("Nhập số thập phân để chuyển đổi:") - nhắc nhở người dùng cho đầu vào số (có nhiều cách để làm điều này trong C qua scanf ví dụ)
cơ sở = 2 - chỉ định cơ sở của chúng tôi là 2 (nhị phân)
giải pháp = "" - tạo ra một chuỗi rỗng trong đó chúng ta sẽ tiếp nhau giải pháp của chúng tôi
trong khi tháng mười hai> = cơ sở: - trong khi số lượng của chúng tôi lớn hơn cơ sở vào
giải pháp = str (DEC% cơ sở) + giải pháp - lấy mô-đun của số đó đến cơ số và thêm nó vào đầu chuỗi của chúng ta (chúng ta phải thêm các số từ phải sang trái bằng cách sử dụng phép chia và phương thức còn lại). hàm str() chuyển đổi kết quả của hoạt động thành một chuỗi. Bạn không thể nối các số nguyên với các chuỗi trong python mà không cần chuyển đổi kiểu.
Tháng Mười Hai = Tháng Mười Hai/cơ sở - chia số thập phân bởi các cơ sở trong quá trình chuẩn bị để có những modulo tiếp theo
nếu tháng mười hai> 0: giải pháp = str (DEC) + giải pháp - nếu bất cứ điều gì còn sót lại, thêm nó vào đầu (điều này sẽ là 1, nếu bất cứ điều gì)
giải pháp in - in con số cuối cùng
Nguồn
2009-03-31 04:43:55
Tôi thấy một bộ đệm tràn nếu hàm binrep() không được cung cấp đủ không gian cho giá trị mà nó đang in. Và, từ kinh nghiệm cay đắng (nhưng trước đây), những thứ viết ra phía trước của một mảng có thể thực sự khó chịu để gỡ lỗi! –
Vâng, điều đó sẽ gây phiền toái - nếu int của bạn lớn hơn 32 bit, bạn phải chắc chắn rằng bạn tăng SZ cho phù hợp. – paxdiablo
Cố định để ngăn chặn tràn bộ đệm. – paxdiablo