Hãy sử dụng Numpy!
import numpy as np
def binary[num, string=True]:
bits = np.unpackbits[np.array[[num]].view['u1']]
if string:
return np.array2string[bits, separator=''][1:-1]
else:
return bits
e.g.,
binary[np.pi]
# '0001100000101101010001000101010011111011001000010000100101000000'
binary[np.pi, string=False]
# array[[0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1,
# 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0,
# 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0],
# dtype=uint8]
Trong bài viết này, chúng ta sẽ thấy cách chuyển đổi giá trị dấu phẩy động thành nhị phân. Nhị phân sử dụng hai chữ số, 0 và 1. còn được gọi là hệ thống số cơ sở 2 mỗi vị trí trong một số nhị phân đại diện cho công suất 0 của cơ sở [2]. Vị trí cuối cùng trong một số nhị phân đại diện cho công suất X của cơ sở [2].
Đầu tiên, chúng tôi lấy phần số nguyên từ giá trị điểm nổi và chuyển đổi nó thành nhị phân sau đó lấy phần phân số và chuyển đổi nó thành dạng nhị phân và cuối cùng kết hợp cả hai.
Hãy nói rằng chúng tôi có số điểm nổi sau -
22.625
Chuyển đổi thập phân 22 thành nhị phân 10110. Chuyển đổi thập phân 0,625 thành nhị phân 0,101. Kết hợp số nguyên và phân số để có được đầu ra sau -
10110.101
Chuyển đổi nổi sang nhị phân bằng cách lấy đầu vào của người dùng
Thí dụ
def floatoctal_convert[my_number, places = 3]: my_whole, my_dec = str[my_number].split["."] my_whole = int[my_whole] my_dec = int [my_dec] res = bin[my_whole].lstrip["0b"] + "." for x in range[places]: my_whole, my_dec = str[[my_decimal_converter[my_dec]] * 8].split["."] my_dec = int[my_dec] res += my_whole return res def my_decimal_converter[num]: while num > 1: num /= 10 return num n = input["Enter floating point value :
"] p = int[input["Enter the number of decimal places of the result :
"]] print[floatoctal_convert[n, places = p]]
Đầu ra
Enter floating point value : 2.34 Enter the number of decimal places of the result : 3 10.256
Cập nhật vào ngày 12 tháng 8 năm 2022 11:54:31
- Câu hỏi và câu trả lời liên quan
- C# chương trình để chuyển đổi nổi thành nhị phân
- Chương trình Java để chuyển đổi nổi thành nhị phân
- Chương trình Python để chuyển đổi số thập phân thành số nhị phân
- Chương trình Python để chuyển đổi mã màu xám thành nhị phân
- Chương trình Python để chuyển đổi mã nhị phân thành màu xám
- Chuyển đổi thập phân thành số nhị phân trong chương trình Python
- C# Chương trình chuyển đổi nhị phân thành thập phân
- C# Chương trình chuyển đổi thập phân thành nhị phân
- Chương trình 8085 để chuyển đổi màu xám thành nhị phân
- Chương trình 8085 để chuyển đổi ASCII thành nhị phân
- C# Chương trình chuyển đổi chuỗi nhị phân thành số nguyên
- Chương trình C ++ để chuyển đổi số thập phân thành nhị phân
- Chương trình Java để chuyển đổi từ thập phân sang nhị phân
- Chương trình Java để chuyển đổi int thành chuỗi nhị phân
- Chương trình 8085 để chuyển số nhị phân thành màu xám
Lập trình Python / Dấu hiệu Decimal để chuyển đổi nhị phân
Chuyển đổi số thập phân điểm nổi sang nhị phân bằng chương trình Python.
Decimal vs nhị phân
Hệ thống số thập phân là một hệ thống trong đó các số được biểu thị theo thang đo 10. trong khi hệ thống số nhị phân liên quan đến việc biểu thị số theo tỷ lệ 2.
Thủ tục
Bước 1: Toàn bộ phần số [59] của 59.65625 được chia cho 2 cho đến khi thương số trở thành 1. Phần còn lại [mang] được tích lũy [1 hoặc 0] cho đến khi chuỗi hoạt động cuối cùng cho thương số 1 được thực hiện Thứ tự ngược của sáng tạo, để có được 111011. The whole number part[59] of 59.65625 is divided by 2 until the quotient becomes 1. The remainder[carry] that is accumulated[either 1 or 0] till the last sequence of operation that gives the quotient 1 is taken in the reverse order of creation, so as to obtain 111011.
59/2 = 29 [1 được coi là mang theo]
29/2 = 14 [1 được coi là mang theo]
14/2 = 7 [0 được coi là mang theo]
7/2 = 3 [1 được coi là mang theo]
3/2 = 1 [1 được coi là mang theo]
Vì vậy, khi chúng tôi đảo ngược việc mang theo, chúng tôi nhận được 11011. Cuối cùng, chúng tôi đặt chỉ số cuối cùng vào đầu năm 11011 để có được 111011.
Bước 2: Phần thập phân được nhân với 2 lần nhiều lần so với số vị trí thập phân trong kết quả cuối cùng cần thiết. Để giải thích, chúng ta hãy lấy ví dụ nêu trên của 59.65625. Ở đây 0,65625 = 65625 * 10^-5. The decimal part is multiplied by 2 as many times as the number of decimal places in the final result required. To elaborate, let's take the above-mentioned example of 59.65625. Here 0.65625 = 65625 * 10^-5.
0.656252 = 1.31250 [1 được lấy làm mang theo]
0.312502 = 0,62500 [0 được lấy làm mang theo]
0.625002 = 1.25000 [1 được lấy làm mang theo]
0,250002 = 0,50000 [0 được lấy làm mang theo]
0.50000*2 = 1,00000 [1 được lấy làm mang] Khi chúng tôi mang các tính toán lại với nhau, chúng tôi thu được 111011.10101
When we bring the calculations together, we obtain 111011.10101
Chương trình Python:
Mã bắt đầu bằng việc nhận đầu vào từ người dùng.
try:
num = float[input['Enter a floating point decimal number: ']] except[ValueError]:
print['Please enter a valid floating point decimal']
Số lượng vị trí thập phân mà kết quả cuối cùng sẽ được điều chỉnh để nhận được từ người dùng cuối.
places = int[input['Enter the number of decimal places in the result: ']]
Toàn bộ danh sách [danh sách toàn bộ số] và dec_list [danh sách các số thập phân] được khai báo là các biến toàn cầu.
global whole_list
global dec_list
Số thập phân nổi đã được nhập được chia thành toàn bộ số và số thập phân.
whole, dec = str[num].split['.']
whole = int[whole]
dec = int[dec]
Toàn bộ phần số được chia cho 2 và chỉ số tiếp theo sau đó được chia cho 2. Quá trình tiếp tục cho đến khi thương số là 1. Phần còn lại được hình thành bởi mỗi lần lặp của vòng lặp được thêm vào toàn bộ_list [danh sách toàn bộ số].
binary[np.pi]
# '0001100000101101010001000101010011111011001000010000100101000000'
binary[np.pi, string=False]
# array[[0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1,
# 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0,
# 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0],
# dtype=uint8]
0Phần thập phân được nhân với 2 và sản phẩm kết quả được chia thành toàn bộ số và thập phân. Do đó, toàn bộ số được hình thành được thêm vào dec_list [danh sách các số thập phân]. Quá trình được tiếp tục cho đến số vị trí thập phân mà kết quả cuối cùng sẽ được điều chỉnh.
binary[np.pi]
# '0001100000101101010001000101010011111011001000010000100101000000'
binary[np.pi, string=False]
# array[[0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1,
# 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0,
# 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0],
# dtype=uint8]
1Nếu độ dài của Whole_list lớn hơn 1 [ví dụ: 1.0567 sẽ có một phần tử toàn bộ_list], danh sách sẽ được đảo ngược. Sau đó, 1 được chèn là phần tử đầu tiên của toàn bộ_list.
binary[np.pi]
# '0001100000101101010001000101010011111011001000010000100101000000'
binary[np.pi, string=False]
# array[[0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1,
# 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0,
# 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0],
# dtype=uint8]
2Cuối cùng, kết quả được in.
binary[np.pi]
# '0001100000101101010001000101010011111011001000010000100101000000'
binary[np.pi, string=False]
# array[[0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1,
# 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0,
# 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0],
# dtype=uint8]
3Liên kết GitHub:
Mã hóa hạnh phúc !!!