Nhị phân được định nghĩa là hệ thống số bao gồm hai ký hiệu 0 và 101. Đó là hệ thống số cơ sở 2. Các máy tính thực hiện các hoạt động trong hệ nhị phân
Máy tính xem chuỗi ở định dạng nhị phân và số nhị phân là giá trị ASCII của chuỗi được chuyển đổi.
Phương pháp 1. Sử dụng hàm ord[]
Đầu tiên, chúng tôi thêm các giá trị ASCII riêng lẻ của chuỗi vào danh sách bằng cách sử dụng hàm ord[]
Hàm ord giúp chuyển đổi ký tự và đưa ra giá trị ASCII của chuỗi
Thí dụ
# string initialization
test_str = "JavaTpoint"
# original string
print["The original string is : " + str[test_str]]
# String to binary conversion
res = ''.join[format[ord[i], 'b'] for i in test_str]
# result
print["The string after binary conversion : " + str[res]]
đầu ra
The original string is : JavaTpoint
The string after binary conversion : 1001010110000111101101100001101010011100001101111110100111011101110100
Phương pháp 2. Sử dụng mảng phụ
Hàm bytearray được sử dụng để chuyển đổi chuỗi. Tất cả các ký tự được ánh xạ vào bin bằng bytearray và nó trả về mảng của ký tự ở dạng nhị phân
Thí dụ
test_str = "JavaTpoint"
# original string
print["The original string is : " + str[test_str]]
# String to binary converting
res = ''.join[format[i, 'b'] for i in bytearray[test_str, encoding ='utf-8']]
# result
print["The string after binary conversion : " + str[res]]
đầu ra
The original string is : JavaTpoint
The string after binary conversion : 1001010110000111101101100001101010011100001101111110100111011101110100
Phương pháp 3. Sử dụng hàm map[]
Bằng cách sử dụng bytearray, tất cả ký tự cũng có thể được ánh xạ vào Bin. Hàm bin[] dùng để chuyển đổi số thập phân thành số nhị phân
Ý tưởng là sử dụng hàm ord[]
để chuyển đổi từng ký tự của chuỗi thành số nguyên tương ứng biểu thị điểm mã Unicode của ký tự đó. Sau đó, bạn có thể chuyển số nguyên đó cho hàm format[]
, hàm này sẽ chuyển đổi nó thành số ở cơ số 2 khi định dạng nhị phân b
được sử dụng
1
2
3
4
5
6
7
if __name__ == '__main__'.
s = "ABC"
kết quả = ' '. tham gia[định dạng[ord[c], 'b'] for c in s]
in[kết quả] # 1000001 1000010 1000011
Tải xuống Chạy mã
Ngoài ra, bạn có thể lặp qua một mảng byte thay vì lặp trực tiếp qua chuỗi. Điều này có thể được thực hiện bằng cách sử dụng hàm bytearray[]
và tránh sử dụng hàm ord[]
.
1
2
3
4
5
6
7
if __name__ == '__main__'.
s = "ABC"
kết quả = ' '. tham gia[định dạng[c, 'b'] for c in bytearray[s, "utf-8"]]
in[kết quả] # 1000001 1000010 1000011
Tải xuống Chạy mã
Để lấy danh sách các chuỗi nhị phân, bạn có thể sử dụng hàm tạo danh sách.
1
2
3
4
5
6
7
if __name__ == '__main__'.
s = "ABC"
kết quả = danh sách[format[c, 'b'] for c in bytearray[s, "utf-8"]]
in[kết quả] # ['1000001', '1000010', '1000011']
Tải xuống Chạy mã
2. Sử dụng chức năng map[]
Một tùy chọn khác là chuyển đổi chuỗi thành một mảng byte bằng cách sử dụng hàm bytearray[]
và sau đó sử dụng hàm
The original string is : JavaTpoint1 trong bản đồ
The string after binary conversion : 1001010110000111101101100001101010011100001101111110100111011101110100