Làm thế nào để bạn in một giá trị nhị phân trong python?

Chuyển đến nội dung chính

Giới thiệu về Python

Nắm vững kiến ​​thức cơ bản về phân tích dữ liệu với Python chỉ trong bốn giờ. Khóa học trực tuyến này sẽ giới thiệu giao diện Python và khám phá các gói phổ biến

Python trung cấp

Nâng cao kỹ năng khoa học dữ liệu của bạn bằng cách tạo trực quan hóa bằng Matplotlib và thao tác với DataFrames bằng gấu trúc

Có liên quan

Dữ liệu văn bản trong Python Cheat Sheet

Chào mừng bạn đến với bảng gian lận của chúng tôi để làm việc với dữ liệu văn bản trong Python. Chúng tôi đã biên soạn một danh sách các hàm và gói hữu ích nhất để dọn dẹp, xử lý và phân tích dữ liệu văn bản trong Python, cùng với các ví dụ và giải thích rõ ràng, vì vậy bạn sẽ có mọi thứ cần biết về cách làm việc với dữ liệu văn bản trong Python.

Hướng dẫn về tập hợp và lý thuyết tập hợp trong Python

Tìm hiểu về bộ Python. chúng là gì, cách tạo chúng, khi nào sử dụng chúng, các chức năng tích hợp và mối quan hệ của chúng với các hoạt động lý thuyết tập hợp

Hướng dẫn về gấu trúc. Khung dữ liệu trong Python

Khám phá phân tích dữ liệu với Python. Pandas DataFrames giúp thao tác dữ liệu của bạn dễ dàng, từ việc chọn hoặc thay thế các cột và chỉ mục để định hình lại dữ liệu của bạn

Xem ThêmXem Thêm

In biểu diễn nhị phân của một số đã cho trong C, C++, Java và Python bằng các phương thức và quy trình tùy chỉnh tích hợp sẵn

Ví dụ,

Đầu vào. 20
Đầu ra. 00000000000000000000000000010100
 
Đầu vào. 64
Đầu ra. 00000000000000000000000001000000
 
Đầu vào. 127
Đầu ra. 00000000000000000000000001111111
 
Đầu vào. -1
Đầu ra. 11111111111111111111111111111111

Thực hành vấn đề này

1. Giải pháp lặp đi lặp lại

Ý tưởng là kiểm tra xem bit i'th có được đặt cho từng vị trí i trong số nguyên đã cho n hay không. Nếu bit i'th được đặt cho vị trí i trong số nguyên n, thì đặt bit i'th thành 1 trong biểu diễn nhị phân của n; . i nằm trong khoảng từ 0 đến 31 đối với số nguyên 32 bit

Biểu thức 1 << (i - 1) đưa ra một số chỉ có _0 bit được đặt. Nếu chúng tôi thực hiện bitwise i1 của biểu thức này với bất kỳ số nào n, i. e. , i3, một giá trị khác 0 cho biết rằng bit i'th của nó được đặt cho số n. Chẳng hạn, hãy xem xét i6 và i7. Kết quả là một giá trị khác 0, cho biết rằng bit i8 được đặt cho số nguyên 20

00010100    &           (n = 20)
00000100                (1 << (3-1))
~~~~~~~~~<
00000100                non-zero value

Độ phức tạp về thời gian của giải pháp này là O(c) và không sử dụng thêm dung lượng. Ở đây, i9 chỉ ra một giá trị không đổi. Sau đây là triển khai trong C, Java và Python dựa trên ý tưởng trên.

C


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

#include

#include

 

char* to Nhị phân(int n, int len)

{

    ký tự* nhị phân = (char*)malloc(sizeof(char) * len);

    int k = 0;

    cho (không dấu i = (1 << len - 1); i > 0; i = i / 2) {

        nhị phân[k++] = (n & i) ? '1' : '0';

    }

    nhị phân[k] = '\0';

    trả về nhị phân;

}

 

int chính(void)

{

    int n = 20;

    int len = 32;

 

    ký tự* nhị phân = toBinary(n, len);

    printf("Biểu diễn nhị phân của %d là %s", n, binary);

    miễn phí(nhị phân);

 

    return 0;

}

Tải xuống Chạy mã

C++


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

#include

#include

sử dụng không gian tên std;

 

chuỗi sang nhị phân(int n, int len)

{

    chuỗi nhị phân;

    cho (không dấu i = (1 << len - 1); i > 0; i = i / 2) {

        nhị phân += (n & i) ? "1" : "0";

    }

 

    trả về nhị phân;

}

 

int chính()

{

    int n = 20;

    int len = 32;

 

    cout << "Biểu diễn nhị phân của " << n << " is " << toBinary(n, len);

 

    return 0;

}

Tải xuống Chạy mã

Java


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

lớp Chính

{

    công khai tĩnh Chuỗi đến nhị phân(int n, int len)

    {

        Chuỗi nhị phân = "";

        cho (lâu i = (1L << len - 1); i > 0; i = i / 2) {

            nhị phân += (n & i) != 0 ? "1" . "0";

        }

        trả về nhị phân;

    }

 

    công khai tĩnh vô hiệu chính(String[] args)

    {

        int n = 20;

        int len = 32;

 

        Chuỗi nhị phân = nhị phân(n, len);

        Hệ thống. ra. println("Biểu diễn nhị phân của " + n + " is " + binary);

    }

}

Tải xuống Chạy mã

con trăn


1

2

3

4

5

6

7

8

9

10

11

12

13

14

def to Nhị phân(n, len):

    nhị phân = ''

    i = 1 << len - 1

    trong khi i > 0:

        nhị phân += '1' nếu (n & i) else '0'

        i = i // 2

    trả về nhị phân

 

if __name__ == '__main__'.

 

    n = 20

    len = 32

    print(f'Biểu diễn nhị phân của {, toBinary(n, len))

 

Tải xuống Chạy mã

Đầu ra.
 
Biểu diễn nhị phân của 20 là 00000000000000000000000000010100

2. Giải pháp đệ quy

Đối với một số n đã cho, ý tưởng là lặp lại với giá trị n1 và thêm phần còn lại của n với n3 (n4) vào chuỗi đầu ra. Chấm dứt đệ quy khi n trở thành n6 và trả về chuỗi đầu ra

Giải pháp chạy trong thời gian O(log(n)) và yêu cầu O(log( . Quan hệ truy hồi là n7. Tuy nhiên, điều này chỉ hoạt động với số nguyên dương. Sau đây là chương trình C++, Java và Python thể hiện phiên bản đệ quy. extra space for the call stack. The recurrence relation is n7. However, this works only with positive integers. Following is the C++, Java, and Python program that demonstrates the recursive version:

C++


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

#include

#include

sử dụng không gian tên std;

 

chuỗi sang nhị phân(không dấu n)

{

    nếu (n == 0) {

        return "";

    }

 

    trả về Nhị phân(n / 2) + to_string(n % 2);

}

 

int chính()

{

    int n = 20;

 

    cout << "Biểu diễn nhị phân của " << n << " is " << toBinary(n) << endl;

 

    return 0;

}

Tải xuống Chạy mã

Java


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

lớp Chính

{

    công khai tĩnh Chuỗi đến nhị phân(int n)

    {

        nếu (n == 0) {

            return "";

        }

 

        trả lại về Nhị phân(n / 2) + (n % 2);

    }

 

    công khai tĩnh vô hiệu chính(String[] args)

    {

        int n = 20;

        Hệ thống. ra. println("Biểu diễn nhị phân của " + n + " is " + toBinary(n));

    }

}

Tải xuống Chạy mã

con trăn


1

2

3

4

5

6

7

8

9

def to Nhị phân(n):

    return (to Nhị phân(n // 2) if n > 1 else '') + str(n % 2)

 

 

if __name__ == '__main__'.

 

    n = 20

    print(f'Biểu diễn nhị phân của {, toBinary(n))

 

Tải xuống Chạy mã

Đầu ra.
 
Biểu diễn nhị phân của 20 là 10100

3. Sử dụng các phương thức tích hợp

Trong C++, chúng ta có thể sử dụng hàm thành viên n8 từ không gian tên n9, có thể xây dựng đối tượng vùng chứa bitset từ đối số số nguyên

Trong Java, chúng ta có thể sử dụng phương thức i'th0, phương thức này trả về biểu diễn chuỗi của số nguyên đã chỉ định

Trong Python, chúng ta có thể sử dụng hàm có sẵn i'th1 để chuyển đổi một số nguyên thành một chuỗi nhị phân có tiền tố là i'th2. Nếu tiền tố i'th2 không được mong muốn, hãy cân nhắc sử dụng hàm i'th4 hoặc chuỗi f. Các chuỗi f có sẵn trong Python bắt đầu với v3. 6

Làm cách nào để in giá trị nhị phân bằng Python mà không cần 0b?

Để in nhị phân dương hoặc âm mà không có tiền tố '0b' hoặc tiền tố '-0b', bạn chỉ cần sử dụng chuỗi. replace() và thay thế mỗi lần xuất hiện của 'b' bằng '0' . Chuỗi kết quả là chính xác về mặt toán học vì đứng đầu '0' không thay đổi giá trị của số.

In 0b10 là gì?

in 0b10 cho 2 . Điều này là do tất cả các số được lưu trữ trong python dưới dạng nhị phân. bin(2) là một chuỗi. Vì vậy, nó cung cấp cho bạn giá trị nhị phân.

0b trong Python là gì?

0b là tiền tố Python để biểu diễn các số nhị phân .