Hướng dẫn how do you convert base 10 to base 2 in python? - làm thế nào để bạn chuyển đổi cơ sở 10 thành cơ sở 2 trong python?

Tôi đang làm việc trên một bộ chuyển đổi số trong Python và tôi cảm thấy khó khăn trong việc chuyển đổi chính xác các giá trị thập phân lớn (lớn hơn 2^53) từ thập phân sang nhị phân. Tôi đã thực hiện nhiều bài kiểm tra ngẫu nhiên để tìm điểm phá vỡ nhưng tôi không chắc tại sao nó lại bị phá vỡ. Tôi nghĩ Python 3 cho phép số lượng lớn tùy ý. Tôi có thể mất một số dữ liệu chuyển đổi giữa các giá trị STR và INT. Cảm ơn sự giúp đỡ của bạn. Đây là mã tôi đang sử dụng:

# @param: num is an integer >= 0 
# @return: A string containing the converted binary value of num 
def base10to2(num):
    if(not bool(re.match(decimals, str(num)))):
        return "num must be a decimal number string [0-9]."
    if(int(num) <= 1):
        return num
    binaryValue = ''
    decimalRemainder = int(num)
    while decimalRemainder > 0:
        binaryValue = str(decimalRemainder % 2) + binaryValue
        decimalRemainder = math.floor(decimalRemainder / 2)    
    return binaryValue

Dưới đây là một số kết quả kiểm tra ngẫu nhiên của tôi:

Lỗi Bin Dec theo giá trị thập phân 57578088768095921 và giá trị nhị phân 110011001000111011110111011101111101111001101101100.

Lỗi Bin Dec theo giá trị thập phân 94158773465990610 và giá trị nhị phân 1010011101000010011100111110101001110110110100010110100.

Lỗi Bin Dec theo giá trị thập phân 27741136442133437 và giá trị nhị phân 11000101000111001101010100111010011001000101110111100.

Lỗi Bin Dec theo giá trị thập phân 102400897160966081 và giá trị nhị phân 10110101111001101000100101100101111110111101111110000.

Lỗi Bin Dec theo giá trị thập phân 61449679276206615 và giá trị nhị phân 11011010010100001010011001100000110110110110100100.

Lỗi Bin Dec theo giá trị thập phân 32630026885393859 và giá trị nhị phân 11100111110110011011000101001100000111110110111000100.

Lỗi Bin Dec theo giá trị thập phân 28823706477206651 và giá trị nhị phân 110011001100111000000100010000110101011110001111100.

Lỗi Bin Dec theo giá trị thập phân 32300284354028835 và giá trị nhị phân 11100101100000011101111111111110001001001110010100100100.

Lỗi Bin Dec theo giá trị thập phân 15026178163056103 và giá trị nhị phân 1101010110001000111010111011101111011001110111101001.

Dường như chỉ có 4 bit cuối cùng không chính xác trong những trường hợp này.

Dưới đây là quy trình chuyển đổi từ cơ sở 2 sang cơ sở 10 tôi có (chỉ trong trường hợp điều này có liên quan).

# @param: num is binary whole number
# @return: A string containing the converted decimal value of num
def base2to10(num):
    if(not bool(re.match(binary, str(num)))):
        return "num must be a binary number string [0-1]."
    digits = []
    placeValue = 1
    decimalValue = 0
    digits = list(num)
    for i in range(len(digits)):
        decimalValue += placeValue * int(digits[len(digits) - i - 1])
        placeValue *= 2
    return decimalValue

Tổng quan

Cơ sở mười chữ số, từ 0 đến 9, được sử dụng trong hệ thống đếm nhị phân thập phân hoặc "denary". Nó là hệ thống đánh số được sử dụng rộng rãi nhất. Mỗi chữ số trong hệ thống này có một vị trí và một dấu thập phân. Mặt khác, hệ thống nhị phân sử dụng các số nguyên ở cơ sở hai, từ 0 đến 1. Đây là hệ thống đơn giản nhất vì nó có hai chữ số: 0 và 1. Do đó, thông thường các chuyên gia về lập trình máy tính hoặc khác Các trường kỹ thuật liên quan cần chuyển đổi mã thập phân sang nhị phân.

Phạm vi

Trong bài viết này, chúng tôi sẽ học cách chuyển đổi thập phân thành nhị phân trong Python, sử dụng các hàm Python tích hợp và không có nó.Decimal to Binary in Python, using built-in python functions and without it.

Giới thiệu

Nhị phân là một trong những khía cạnh nền tảng quan trọng nhất của máy tính và các hệ thống kỹ thuật số khác. Khi con người chúng ta sử dụng các ngôn ngữ để hiểu và giao tiếp với nhau, máy tính và các hệ thống kỹ thuật số khác sử dụng nhị phân. Đây là một hệ thống số cơ sở-2 chỉ có hai số, 0 & 1, tương ứng với trạng thái BẬT & TẮT mà máy tính của bạn có thể hiểu.0 & 1, corresponding to ON & OFF states that your computer can understand.

Vì con người bình thường có mười ngón tay để đại diện cho một hệ thống số đơn giản gọi là thập phân, các máy tính có các trạng thái bật và tắt này đại diện cho nhị phân. Vì vậy, để hiểu và giải thích nhị phân, chúng ta cần một số kỹ thuật để chuyển đổi mã nhị phân thành mã thập phân (có thể đọc được) và ngược lại. Do đó, bài viết này sẽ thảo luận về cách chuyển đổi thập phân thành nhị phân và ngược lại, trong bối cảnh với một trong các ngôn ngữ lập trình máy tính, Python.

Hướng dẫn how do you convert base 10 to base 2 in python? - làm thế nào để bạn chuyển đổi cơ sở 10 thành cơ sở 2 trong python?

Hiểu số thập phân và nhị phân

Hệ thống thập phân (cơ sở-10) sử dụng mười số từ 0 đến 9 và sau đó sử dụng các kết hợp của chúng để tạo thành chữ số, với mỗi chữ số có giá trị gấp mười lần so với chữ số cuối cùng (1, 10, 100, so) qua phải.

Hãy xem xét một giá trị 265:

  • Ở đây, 265 là sự kết hợp của các số từ 0 đến 9 để tạo thành mỗi chữ số
  • Mỗi chữ số gấp mười lần so với chữ số cuối cùng từ trái sang phải 5 -> 5 × 100; 6 -> 6 × 101; 2 -> 2 × 1025 -> 5×100; 6 -> 6×101; 2 -> 2×102

Hệ thống nhị phân (cơ sở-2) cũng tương tự nhau. Đó là sự kết hợp của các số 0 hoặc 1, với mỗi chữ số trị giá gấp hai lần so với chữ số cuối cùng (1, 2, 4, so-on) đi từ trái sang phải.

Đại diện chữ số thập phân:

[0 đến 9][0 đến 9][0 đến 9][0 đến 9][0 đến 9]
10410^4 10310^3 10210^2 10110^1 10010^0
Nthn^{th} chữ số digit 5th5^{th} chữ số digit 4th4^{th} chữ số digit 3rd3^{rd} chữ số digit 2nd2^{nd} chữ số digit 1st1^{st} chữ số digit

Đại diện chữ số nhị phân:

[0 hoặc 1][0 hoặc 1][0 hoặc 1][0 hoặc 1][0 hoặc 1]
242^4 232^3 222^2 212^1 202^0
Nthn^{th} chữ số digit 5th5^{th} chữ số digit 4th4^{th} chữ số digit 3rd3^{rd} chữ số digit 2nd2^{nd} chữ số digit 1st1^{st} chữ số digit

Đại diện chữ số nhị phân:

[0 hoặc 1]

Chuyển đổi nhị phân sang thập phân trong Python01011

Chúng ta đã thấy rằng hệ thống nhị phân là sự kết hợp của [0 hoặc 1], với mỗi chữ số trị giá gấp hai lần so với chữ số cuối cùng, vì vậy hãy để xem thông tin này sẽ giúp chúng ta chuyển đổi nhị phân thành tương đương thập phân.01011
Xem xét số nhị phân 01011 Chữ số=16 Trọng lượng=8 242^4 = 16=4 232^3 = 8=2 222^2 = 4=1

Hence,

212^1 = 2

202^0 = 1(01011)2(01011)_2 is equivalent to (11)1 0(11)_{10} Decimal(base-10) number.

(01011) 2 = (0 × 24)+(1 × 23)+(0 × 22)+(1 × 21)+(1 × 20) = (0)+(8)+(0)+(2) + (1) = (11) 10 (01011)^2 = (0 × 2^4) + (1 × 2^3) + (0 × 2^2) + (1 × 2^1) + (1 × 2^0) = (0)+(8)+(0)+(2)+(1) = (11) _ {10}

Do đó, nhị phân (cơ sở-2) (01011) 2 (01011) _2 tương đương với (11) 1 0 (11) _ {10} số thập phân (cơ sở-10).

Chuyển đổi nhị phân thành thập phân trong Python

Chúng ta sẽ thấy cách chuyển đổi nhị phân thành thập phân trong Python bằng cách sử dụng hàm tích hợp.int() function to convert a binary to its decimal value. The int() function takes 2 arguments, a value and the base of the number to be converted, which is 2 in the case of binary numbers

Syntax:

Code:

# Function Binary to Decimal number 
def binaryToDecimal(val): 
    return int(val, 2) 
 
# Driver code 
if __name__ == '__main__': 
    print(binaryToDecimal('100')) 
    print(binaryToDecimal('101'))
    print(binaryToDecimal('1001'))

Output:

Thập phân sang chuyển đổi nhị phân trong Python

Hãy để cố gắng hiểu số thập phân để chuyển đổi nhị phân. Kỹ thuật dễ nhất để chuyển đổi số thập phân thành tương đương nhị phân của chúng là phân chia cho 2.Division by 2.

Trong phân chia cho kỹ thuật 2, chúng tôi liên tục chia số thập phân cho 2 và lưu ý lời nhắc cho đến khi chúng tôi nhận được 1 là giá trị đầu vào của chúng tôi. Sau đó, chúng tôi đọc các lời nhắc được ghi nhận theo thứ tự ngược lại để có được giá trị nhị phân cuối cùng.

Hãy để phá vỡ các tuyên bố trước đó để có được sự rõ ràng hơn. Giả sử chúng ta có một hàm đặc biệt chia số đầu vào cho 2 và cung cấp phần còn lại làm đầu ra. Đối với thập phân đến nhị phân, chúng tôi gọi hàm đặc biệt này nhiều lần cho đến khi chúng tôi nhận được 1 là giá trị đầu vào. Sau đó, cuối cùng chúng tôi đã in tất cả các lời nhắc đã lưu để có được giá trị nhị phân cuối cùng (cơ sở-2).binary(base-2) value.

Hướng dẫn how do you convert base 10 to base 2 in python? - làm thế nào để bạn chuyển đổi cơ sở 10 thành cơ sở 2 trong python?

Chuyển đổi thập phân thành nhị phân trong Python

Bây giờ chúng ta sẽ xem cách mã hóa thập phân cho nhị phân trong Python. Trước tiên chúng tôi sẽ cố gắng mã hóa kỹ thuật mà chúng tôi đã học bằng cách sử dụng một cuộc gọi chức năng đệ quy tùy chỉnh trong Python.

1. Hàm đệ quy tùy chỉnh trong Python để chuyển đổi thập phân thành nhị phân:

Trong mẫu này, chúng tôi sẽ viết hàm đặc biệt (decimaltobinary) để thực hiện để có được các chỉ số (đầu vào vào gọi hàm tiếp theo) và phần còn lại (giá trị đầu ra), và sau đó chúng tôi sẽ gọi nó nhiều lần cho đến khi giá trị đầu vào lớn hơn và bằng 1

Code:


#Recursive Function to convert Decimal to Binary

def decimalToBinary(ip_val):
    if ip_val >= 1:
    # recursive function call
        decimalToBinary(ip_val // 2)
    
    # printing remainder from each function call
    print(ip_val % 2, end = '')
 
# Driver Code
if __name__ == '__main__':
    # decimal value
    ip_val = 24
     
    # Calling special function
    decimalToBinary(ip_val)

Output:

Ngoài ra, Python cũng cung cấp một chức năng tích hợp để chuyển đổi thập phân thành nhị phân.

2. Chức năng tích hợp trong Python để chuyển đổi nhị phân thành thập phân:

Trong Python, chúng ta chỉ có thể sử dụng hàm bin () để chuyển đổi từ giá trị thập phân sang giá trị nhị phân tương ứng của nó. Bin () lấy một giá trị làm đối số của nó và trả về một nhị phân tương đương.bin() function to convert from a decimal value to its corresponding binary value. The bin() takes a value as its argument and returns a binary equivalent.

Lưu ý: Bin () Trả về giá trị nhị phân với tiền tố 0b, do đó tùy thuộc vào trường hợp sử dụng, định dạng nên được thực hiện để loại bỏ 0b. bin() return binary value with the prefix 0b, so depending on the use-case, formatting should be done to remove 0b.

Code:

# Function to convert decimal to binary
# using built-in python function
def decimalToBinary(n):
    # converting decimal to binary
    # and removing the prefix(0b)
    return bin(n).replace("0b", "")
   
# Driver code
if __name__ == '__main__':
    # calling function
    # with decimal argument
    print(decimalToBinary(77))

Output:

Chúng ta cũng có thể chuyển đổi thập phân thành nhị phân theo một cách khác ngoài việc sử dụng chức năng tích hợp từ Python.

3. Không sử dụng chức năng tích hợp trong Python để chuyển đổi nhị phân thành thập phân:

Code:

# Function to convert Decimal to Binary
def decimalToBinary(n):
    return "{0:b}".format(int(n))
# Driver code
if __name__ == '__main__':
    print(decimalToBinary(77))

Output:

Sự kết luận

  1. Hầu hết các máy tính và hệ thống kỹ thuật số sử dụng nhị phân vì lưu trữ dữ liệu đáng tin cậy của chúng.
  2. Hệ thống thập phân (cơ sở-10) sử dụng kết hợp các số từ 0 đến 9 để tạo thành các chữ số, với mỗi chữ số có giá trị gấp mười lần so với chữ số cuối cùng.
  3. Hệ thống nhị phân (cơ sở-2) sử dụng kết hợp 0 ​​hoặc 1 để tạo thành các chữ số, với mỗi chữ số có giá trị gấp hai lần so với chữ số cuối cùng.
  4. Chuyển đổi nhị phân sang thập phân là tổng trọng số của mỗi chữ số (2i x ith-giá trị).sum (2i x ith-value).
  5. Có thể thực hiện nhị phân đến thập phân trong Python bằng cách sử dụng hàm tích hợp int (,)int(, )
  6. Chuyển đổi thập phân sang nhị phân đạt được bằng cách sử dụng phân chia theo kỹ thuật 2.Division By 2 technique.

Một số cách để chuyển đổi thập phân thành nhị phân trong python bằng cách sử dụng hàm đệ quy tùy chỉnh, functionbin () tích hợp () hoặc sử dụng định dạng {0: b}. (Int ()).functionbin() or using “{0:b}”.format(int()).

Đọc thêm:

1- Cách chuyển đổi int thành chuỗi trong python

Làm thế nào để bạn chuyển đổi một số từ cơ sở 10 sang cơ sở 2?

Các bước để chuyển đổi từ cơ sở 10 sang cơ sở 2- Chia số đã cho (trong cơ sở 10) với 2 cho đến khi kết quả cuối cùng còn lại nhỏ hơn 2. Đi qua phần còn lại từ dưới lên trên để có được số yêu cầu trong cơ sở 2.Divide the given number (in base 10) with 2 until the result finally left is less than 2. Traverse the remainders from bottom to top to get the required number in base 2.

Làm thế nào để bạn chuyển đổi sang Base 2 trong Python?

Trong Python, bạn chỉ có thể sử dụng hàm bin () để chuyển đổi từ giá trị thập phân sang giá trị nhị phân tương ứng của nó.Và tương tự, hàm int () để chuyển đổi một nhị phân thành giá trị thập phân của nó.Hàm int () lấy đối số thứ hai là cơ sở của số sẽ được chuyển đổi, đó là 2 trong trường hợp số nhị phân.use the bin() function to convert from a decimal value to its corresponding binary value. And similarly, the int() function to convert a binary to its decimal value. The int() function takes as second argument the base of the number to be converted, which is 2 in case of binary numbers.

Làm thế nào để bạn chuyển đổi số nguyên từ cơ sở 10 sang cơ sở 2 trong Python?

Có một cách để chuyển đổi sang các cơ sở khác nhau bằng cách chia số cơ sở 10 cho cơ sở và lấy phần còn lại và lặp lại cho đến khi nó không chia hết và viết thương số theo sau là tất cả các phần còn lại.(Vd.

Làm thế nào để bạn chuyển đổi một số cơ sở 10 thành cơ sở khác?

Để chuyển đổi bất kỳ số nào trong (cơ sở của chúng tôi) cơ sở 10 thành bất kỳ cơ sở nào khác, chúng tôi phải sử dụng phân chia cơ bản với phần còn lại.Không phân chia bằng số thập phân;Thuật toán sẽ không hoạt động.Tiếp tục chia cho 5, cho đến khi thương số của bạn bằng không.Bây giờ hãy viết phần còn lại của bạn ngược!use basic division with remainders. Do not divide using decimals; the algorithm will not work. Keep dividing by 5, until your quotient is zero. Now write your remainders backwards!