Làm thế nào để bạn thể hiện văn học nhị phân trong Python?
Chúng không phải là "nhị phân" theo nghĩa đen, mà là, "chữ số nguyên". Bạn có thể thể hiện các chữ số nguyên với định dạng nhị phân với
integer ::= decinteger | bininteger | octinteger | hexinteger
decinteger ::= nonzerodigit [["_"] digit]* | "0"+ [["_"] "0"]*
bininteger ::= "0" ["b" | "B"] [["_"] bindigit]+
octinteger ::= "0" ["o" | "O"] [["_"] octdigit]+
hexinteger ::= "0" ["x" | "X"] [["_"] hexdigit]+
nonzerodigit ::= "1"..."9"
digit ::= "0"..."9"
bindigit ::= "0" | "1"
octdigit ::= "0"..."7"
hexdigit ::= digit | "a"..."f" | "A"..."F"
7 theo sau là integer ::= decinteger | bininteger | octinteger | hexinteger
decinteger ::= nonzerodigit [["_"] digit]* | "0"+ [["_"] "0"]*
bininteger ::= "0" ["b" | "B"] [["_"] bindigit]+
octinteger ::= "0" ["o" | "O"] [["_"] octdigit]+
hexinteger ::= "0" ["x" | "X"] [["_"] hexdigit]+
nonzerodigit ::= "1"..."9"
digit ::= "0"..."9"
bindigit ::= "0" | "1"
octdigit ::= "0"..."7"
hexdigit ::= digit | "a"..."f" | "A"..."F"
8 hoặc integer ::= decinteger | bininteger | octinteger | hexinteger
decinteger ::= nonzerodigit [["_"] digit]* | "0"+ [["_"] "0"]*
bininteger ::= "0" ["b" | "B"] [["_"] bindigit]+
octinteger ::= "0" ["o" | "O"] [["_"] octdigit]+
hexinteger ::= "0" ["x" | "X"] [["_"] hexdigit]+
nonzerodigit ::= "1"..."9"
digit ::= "0"..."9"
bindigit ::= "0" | "1"
octdigit ::= "0"..."7"
hexdigit ::= digit | "a"..."f" | "A"..."F"
9, sau đó là một loạt các số không và các số không, ví dụ::>>> 0b0010101010
170
>>> 0B010101
21
Từ Python 3 Docs, đây là những cách cung cấp các chữ số nguyên trong Python:
Các chữ số nguyên được mô tả bằng các định nghĩa từ vựng sau:
integer ::= decinteger | bininteger | octinteger | hexinteger decinteger ::= nonzerodigit [["_"] digit]* | "0"+ [["_"] "0"]* bininteger ::= "0" ["b" | "B"] [["_"] bindigit]+ octinteger ::= "0" ["o" | "O"] [["_"] octdigit]+ hexinteger ::= "0" ["x" | "X"] [["_"] hexdigit]+ nonzerodigit ::= "1"..."9" digit ::= "0"..."9" bindigit ::= "0" | "1" octdigit ::= "0"..."7" hexdigit ::= digit | "a"..."f" | "A"..."F"
Không có giới hạn cho độ dài của các chữ số nguyên ngoài những gì có thể được lưu trữ trong bộ nhớ có sẵn.
Lưu ý rằng các số không hàng đầu trong một số thập phân khác không được phép. Điều này là để định hướng với các chữ theo nghĩa ba kiểu chữ C, mà Python đã sử dụng trước phiên bản 3.0.
Một số ví dụ về chữ số nguyên:
7 2147483647 0o177 0b100110111 3 79228162514264337593543950336 0o377 0xdeadbeef 100_000_000_000 0b_1110_0101
Đã thay đổi trong phiên bản 3.6: Dấu gạch dưới hiện được phép nhóm các mục đích nhóm trong nghĩa đen.
Những cách khác để thể hiện nhị phân:
Bạn có thể có các số không và các số không trong một đối tượng chuỗi có thể được thao tác [mặc dù có lẽ bạn chỉ nên thực hiện các thao tác bitwise trên số nguyên trong hầu hết các trường hợp] - chỉ cần chuyển int chuỗi số 0 và cơ sở bạn đang chuyển đổi từ [2 ]:
>>> int['010101', 2]
21
Bạn có thể tùy chọn có tiền tố
7 2147483647 0o177 0b100110111
3 79228162514264337593543950336 0o377 0xdeadbeef
100_000_000_000 0b_1110_0101
0 hoặc 7 2147483647 0o177 0b100110111
3 79228162514264337593543950336 0o377 0xdeadbeef
100_000_000_000 0b_1110_0101
1:>>> int['0b0010101010', 2]
170
Nếu bạn vượt qua nó
integer ::= decinteger | bininteger | octinteger | hexinteger
decinteger ::= nonzerodigit [["_"] digit]* | "0"+ [["_"] "0"]*
bininteger ::= "0" ["b" | "B"] [["_"] bindigit]+
octinteger ::= "0" ["o" | "O"] [["_"] octdigit]+
hexinteger ::= "0" ["x" | "X"] [["_"] hexdigit]+
nonzerodigit ::= "1"..."9"
digit ::= "0"..."9"
bindigit ::= "0" | "1"
octdigit ::= "0"..."7"
hexdigit ::= digit | "a"..."f" | "A"..."F"
7 làm cơ sở, nó sẽ giả sử cơ sở 10 nếu chuỗi không chỉ định với tiền tố:>>> int['10101', 0]
10101
>>> int['0b10101', 0]
21
Chuyển đổi từ int trở lại nhị phân có thể đọc được của con người:
Bạn có thể chuyển một số nguyên cho thùng để xem biểu diễn chuỗi của một chữ nhị phân:
>>> bin[21]
'0b10101'
Và bạn có thể kết hợp
7 2147483647 0o177 0b100110111
3 79228162514264337593543950336 0o377 0xdeadbeef
100_000_000_000 0b_1110_0101
3 và 7 2147483647 0o177 0b100110111
3 79228162514264337593543950336 0o377 0xdeadbeef
100_000_000_000 0b_1110_0101
4 để qua lại:>>> bin[int['010101', 2]]
'0b10101'
Bạn cũng có thể sử dụng một đặc tả định dạng, nếu bạn muốn có chiều rộng tối thiểu với số không trước:
>>> format[int['010101', 2], '{fill}{width}b'.format[width=10, fill=0]]
'0000010101'
>>> format[int['010101', 2], '010b']
'0000010101'
Trang chủ »Python
Đại diện số nhị phân trong Python: Ở đây, chúng ta sẽ học cách làm việc với các số nhị phân, cách gán, chuyển đổi và hoạt động bitwise trên số nhị phân? Được gửi bởi POCKSHELP, vào ngày 05 tháng 9 năm 2018 Here, we will learn how to work with the binary numbers, how to assign, conversion and bitwise operations on binary numbers?
Submitted by IncludeHelp, on September 05, 2018
Gán giá trị nhị phân cho biến
Để gán các giá trị nhị phân cho biến, chúng tôi sử dụng tiền tố 0b hoặc 0b với giá trị nhị phân.0b or 0B with the binary value.
Example:
# assign number as binary # prefix 0b num = 0b111101 print "num: ", num # prefix 0B num = 0B111101 print "num: ", num
Đầu ra
integer ::= decinteger | bininteger | octinteger | hexinteger
decinteger ::= nonzerodigit [["_"] digit]* | "0"+ [["_"] "0"]*
bininteger ::= "0" ["b" | "B"] [["_"] bindigit]+
octinteger ::= "0" ["o" | "O"] [["_"] octdigit]+
hexinteger ::= "0" ["x" | "X"] [["_"] hexdigit]+
nonzerodigit ::= "1"..."9"
digit ::= "0"..."9"
bindigit ::= "0" | "1"
octdigit ::= "0"..."7"
hexdigit ::= digit | "a"..."f" | "A"..."F"
0Chuyển đổi giá trị thập phân thành nhị phân
Để chuyển đổi giá trị thập phân sang nhị phân, chúng tôi sử dụng phương thức bin [], là phương thức sẵn có trong Python.bin[] Method, which is an inbuilt method in the Python.
Ví dụ: Chương trình Python, trả về giá trị nhị phân có giá trị thập phân đã cho Python program, that returns a binary value of given decimal value
integer ::= decinteger | bininteger | octinteger | hexinteger
decinteger ::= nonzerodigit [["_"] digit]* | "0"+ [["_"] "0"]*
bininteger ::= "0" ["b" | "B"] [["_"] bindigit]+
octinteger ::= "0" ["o" | "O"] [["_"] octdigit]+
hexinteger ::= "0" ["x" | "X"] [["_"] hexdigit]+
nonzerodigit ::= "1"..."9"
digit ::= "0"..."9"
bindigit ::= "0" | "1"
octdigit ::= "0"..."7"
hexdigit ::= digit | "a"..."f" | "A"..."F"
1Đầu ra
integer ::= decinteger | bininteger | octinteger | hexinteger
decinteger ::= nonzerodigit [["_"] digit]* | "0"+ [["_"] "0"]*
bininteger ::= "0" ["b" | "B"] [["_"] bindigit]+
octinteger ::= "0" ["o" | "O"] [["_"] octdigit]+
hexinteger ::= "0" ["x" | "X"] [["_"] hexdigit]+
nonzerodigit ::= "1"..."9"
digit ::= "0"..."9"
bindigit ::= "0" | "1"
octdigit ::= "0"..."7"
hexdigit ::= digit | "a"..."f" | "A"..."F"
2Chuyển đổi giá trị nhị phân thành thập phân
Khi, chúng tôi in giá trị nhị phân - không cần phải chuyển đổi nó; In in giá trị theo định dạng thập phân, nhưprint prints the value in decimal format, like
In 0b111101 - Đầu ra của nó sẽ là 61. - its output will be 61.
Tuy nhiên, chúng ta có thể sử dụng phương thức int [] để chuyển đổi nó thành thập phân bằng cách xác định cơ sở của hệ thống số.int[] method to convert it into decimal by defining base of the number system.
Example:
integer ::= decinteger | bininteger | octinteger | hexinteger
decinteger ::= nonzerodigit [["_"] digit]* | "0"+ [["_"] "0"]*
bininteger ::= "0" ["b" | "B"] [["_"] bindigit]+
octinteger ::= "0" ["o" | "O"] [["_"] octdigit]+
hexinteger ::= "0" ["x" | "X"] [["_"] hexdigit]+
nonzerodigit ::= "1"..."9"
digit ::= "0"..."9"
bindigit ::= "0" | "1"
octdigit ::= "0"..."7"
hexdigit ::= digit | "a"..."f" | "A"..."F"
3Đầu ra
integer ::= decinteger | bininteger | octinteger | hexinteger
decinteger ::= nonzerodigit [["_"] digit]* | "0"+ [["_"] "0"]*
bininteger ::= "0" ["b" | "B"] [["_"] bindigit]+
octinteger ::= "0" ["o" | "O"] [["_"] octdigit]+
hexinteger ::= "0" ["x" | "X"] [["_"] hexdigit]+
nonzerodigit ::= "1"..."9"
digit ::= "0"..."9"
bindigit ::= "0" | "1"
octdigit ::= "0"..."7"
hexdigit ::= digit | "a"..."f" | "A"..."F"
4Chuyển đổi giá trị nhị phân thành thập phân
Khi, chúng tôi in giá trị nhị phân - không cần phải chuyển đổi nó; In in giá trị theo định dạng thập phân, như
Example:
integer ::= decinteger | bininteger | octinteger | hexinteger
decinteger ::= nonzerodigit [["_"] digit]* | "0"+ [["_"] "0"]*
bininteger ::= "0" ["b" | "B"] [["_"] bindigit]+
octinteger ::= "0" ["o" | "O"] [["_"] octdigit]+
hexinteger ::= "0" ["x" | "X"] [["_"] hexdigit]+
nonzerodigit ::= "1"..."9"
digit ::= "0"..."9"
bindigit ::= "0" | "1"
octdigit ::= "0"..."7"
hexdigit ::= digit | "a"..."f" | "A"..."F"
5Đầu ra
integer ::= decinteger | bininteger | octinteger | hexinteger
decinteger ::= nonzerodigit [["_"] digit]* | "0"+ [["_"] "0"]*
bininteger ::= "0" ["b" | "B"] [["_"] bindigit]+
octinteger ::= "0" ["o" | "O"] [["_"] octdigit]+
hexinteger ::= "0" ["x" | "X"] [["_"] hexdigit]+
nonzerodigit ::= "1"..."9"
digit ::= "0"..."9"
bindigit ::= "0" | "1"
octdigit ::= "0"..."7"
hexdigit ::= digit | "a"..."f" | "A"..."F"
6