Hướng dẫn how do you convert integers from base 10 to base 2 in python? - làm cách nào để chuyển đổi số nguyên từ cơ số 10 sang 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: Show
Dưới đây là một số kết quả kiểm tra ngẫu nhiên của tôi:
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).
unread, Làm thế nào để bạn chuyển đổi một số từ cơ sở 10 sang cơ sở 2?8/20/12 đến Ian Kelly viết:> Mọi người nên biết thuật toán chung, mặc dù: > Từ chuỗi nhập khẩu itertools ...unread, Đối với n> 0, giả sử bạn chỉ muốn các chữ số được chuyển đổi chứ không phải một chuỗi. Chuyển đổi chuỗi và dấu trừ cho n8/20/12 đến Ian Kelly viết:> Mọi người nên biết thuật toán chung, mặc dù: > Từ chuỗi nhập khẩu itertools ... Đối với n> 0, giả sử bạn chỉ muốn các chữ số được chuyển đổi chứ không phải một chuỗi. Chuyển đổi chuỗi và dấu trừ cho n Def Convert (n, cơ sở): a, b = divmod (n, cơ sở) nếu a> 0: cho e trong chuyển đổi (a, cơ sở): năng suất e sản lượng b Miki Tebeka Ngày 22 tháng 8 năm 2012, 2:23:00 AM8/22/12 > Bạn nhận được nhị phân bằng cách thực hiện bin (x), trong đó x là một số nguyên.unread, Lưu ý rằng Python cũng hỗ trợ các chữ số nhị phân (tiền tố với 0b): trong [1]: 0b101 out [1]: 58/20/12 đến Ian Kelly viết:> Mọi người nên biết thuật toán chung, mặc dù: > Từ chuỗi nhập khẩu itertools ... Đối với n> 0, giả sử bạn chỉ muốn các chữ số được chuyển đổi chứ không phải một chuỗi. Chuyển đổi chuỗi và dấu trừ cho n Def Convert (n, cơ sở): a, b = divmod (n, cơ sở) nếu a> 0: cho e trong chuyển đổi (a, cơ sở): năng suất e sản lượng bunread, Miki Tebeka8/20/12 đến Ian Kelly viết:> Mọi người nên biết thuật toán chung, mặc dù: > Từ chuỗi nhập khẩu itertools ... Đối với n> 0, giả sử bạn chỉ muốn các chữ số được chuyển đổi chứ không phải một chuỗi. Chuyển đổi chuỗi và dấu trừ cho n unread, Def Convert (n, cơ sở): a, b = divmod (n, cơ sở) nếu a> 0: cho e trong chuyển đổi (a, cơ sở): năng suất e sản lượng b8/20/12 đến Ian Kelly viết:> Mọi người nên biết thuật toán chung, mặc dù: > Từ chuỗi nhập khẩu itertools ...unread, Đối với n> 0, giả sử bạn chỉ muốn các chữ số được chuyển đổi chứ không phải một chuỗi. Chuyển đổi chuỗi và dấu trừ cho n8/21/12 > Bạn nhận được nhị phân bằng cách thực hiện bin (x), trong đó x là một số nguyên. Lưu ý rằng Python cũng hỗ trợ các chữ số nhị phân (tiền tố với 0b): trong [1]: 0b101 out [1]: 5 def denary2binary (n): '' 'chuyển đổi số nguyên denary n thành chuỗi nhị phân bstr' '' bst n> 0: bstr = str (n % 2) + bstr n = n >> 1 return bstr JM (không phải chức năng của tôi nhưng tôi không thể nhớ mình đã đánh cắp ai) Tin nhắn đã bị xóa Joel Goldstickunread, Ngày 21 tháng 8 năm 2012, 3:57:59 AM8/21/128/21/12 Gửi Dennis Lee Bieber, Vào Thứ Hai, ngày 20 tháng 8 năm 2012 lúc 1:29 chiều, Dennis Lee Bieber đã viết:> Vào Thứ Hai, ngày 20 tháng 8 năm 2012 : Cảm ơn tất cả các bạn đã giúp đỡ lớn! @Mark Lawrence Có, bạn chắc chắn đúng: Tôi nên đăng hệ điều hành và phiên bản của mình nhưng là một câu hỏi rất thô về cú pháp Tôi nghĩ rằng nó không thực sự quan trọng. Tôi đã có một kinh nghiệm lập trình chung khá tốt. Tôi biết Java, Visual Basic.net, Pascal và Mathicala. Jean-Michel Pichavant Điều này có thể được chuyển đi khỏi chủ đề, nhưng vì bạn đã mã hóa -6 AS -0110 Tôi nghĩ rằng tôi sẽ tham gia vào 'Bổ sung hai' Với số nhị phân, bạn có thể biểu diễn 0 đến 255 trong một byte hoặc bạn có thể biểu diễn các số từ 127 đến -128. Để có được tiêu cực, bạn bổ sung cho mỗi bit (0 đến 1, 1s đến 0s), sau đó thêm một bit vào kết quả. Vì vậy: 3 -> 00000011 ~ 3 -> 111111100 Thêm 1 1 kết quả 111111101 Điều tốt đẹp về đại diện này là số học hoạt động tốt với hỗn hợp các số âm và dương. Ví dụ: 8 + (-3) ----> 00001000 111111101 Giving: 00000101 là 5! - Joel Goldstick Ian Kelly
unread, Ngày 21 tháng 8 năm 2012, 4:00:21 AM8/21/128/21/12 đến Python Tôi sẽ ném một .lstrip ('0') vào đó để loại bỏ các số 0 hàng đầu xấu xí (và cũng thêm một trường hợp đặc biệt cho i == 0). Mọi người nên biết thuật toán chung, mặc dù: từ chuỗi nhập khẩu itertools Def Convert (n, cơ sở): chữ số = [chr (x) cho x trong chuỗi (phạm vi (ord ('0'), ord ('9')+1), phạm vi (ord ('a'), ord 'Z')+1))] nếu không 2 Ian Kellyunread, Ngày 21 tháng 8 năm 2012, 4:00:21 AM8/21/128/21/12 đến Python Tôi sẽ ném một .lstrip ('0') vào đó để loại bỏ các số 0 hàng đầu xấu xí (và cũng thêm một trường hợp đặc biệt cho i == 0). Mọi người nên biết thuật toán chung, mặc dù: từ chuỗi nhập khẩu itertools Def Convert (n, cơ sở): chữ số = [chr (x) cho x trong chuỗi (phạm vi (ord ('0'), ord ('9')+1), phạm vi (ord ('a'), ord 'Z')+1))] nếu không 2 Ngày 21 tháng 8 năm 2012, 4:10:18 AM8/21/12 Trên Mon, ngày 20 tháng 8 năm 2012 lúc 11:57 sáng, Joel Goldstick đã viết:> Điều này có thể bị tắt khỏi chủ đề, nhưng vì bạn đã mã hóa -6 AS -0110 I> nghĩ rằng tôi sẽ tham gia vào 'hai bổ sung'>> với Số nhị phân, bạn có thể biểu thị 0 đến 255 trong một byte hoặc bạn có thể> đại diện cho các số từ 127 đến -128. Để có được âm bạn> bổ sung cho mỗi bit (0 đến 1, 1s đến 0s), sau đó thêm một bit vào kết quả. > Vì vậy:> 3 -> 00000011> ~ 3 -> 111111100> Thêm 1 1> Kết quả 111111101 >> Điều tốt đẹp về biểu diễn này là số học hoạt động chỉ> tốt với hỗn hợp các số âm và dương. >> Vd 8 + (-3) ----> 00001000> 111111101> Đưa ra: 00000101> đó là 5! Lý do chính để sử dụng bổ sung của Two là khi bạn cần mã hóa dấu hiệu âm của số dưới dạng một chút ở định dạng có chiều rộng cố định, ví dụ: trong một byte hoặc từ. Trong một biểu diễn chuỗi, trừ khi bạn đang cố gắng đại diện cho bộ nhớ máy tính, thường chỉ cần sử dụng dấu trừ, để phù hợp hơn với cách chúng ta thường biểu diễn các chữ số.unread, Mặt khác, lưu ý rằng các biểu diễn bổ sung không cụ thể cho nhị phân. Ví dụ: với các số thập phân, chúng tôi có thể sử dụng "Bổ sung TEN": riêng lẻ trừ mỗi chữ số từ 9 và thêm 1 vào kết quả. Một chữ số hàng đầu từ 5 đến 9 sẽ được coi là tiêu cực.8/21/12 Vì vậy, ví dụ: -(042) -> 958 -(958) -> 042 958 + 042 == 000 Chúc mừng, Ian Paul Rubin Ngày 21 tháng 8 năm 2012, 2:05:45 PM8/21/12
đếnunread, Ian Kelly viết:> Mọi người nên biết thuật toán chung, mặc dù:8/22/12 Vì vậy, ví dụ: -(042) -> 958 -(958) -> 042 958 + 042 == 000 Lưu ý rằng Python cũng hỗ trợ các chữ số nhị phân (tiền tố với 0b): trong [1]: 0b101 out [1]: 5 Miki Tebekaunread, Ngày 22 tháng 8 năm 2012, 2:23:00 AM8/22/128/22/12 đến , > Bạn nhận được nhị phân bằng cách thực hiện bin (x), trong đó x là một số nguyên. 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 một số cơ sở 10 thành cơ sở khác 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.dividing the base 10 number by the base and taking the remainder and repeating until it is not divisible and write the quotient followed by all the remainders. (EX. 50/6 = 8 R 2, 8/6 = 1 R2 so 50 in base 6 would be 122).
Làm cách nào để chuyển đổi một số từ cơ sở này sang cơ sở khác trong Python?Cách dễ nhất (có lẽ) là chuyển đổi bất kỳ số nào từ cơ sở B1 sang B2 là chuyển đổi B1 → thập phân → B2.Vì vậy, để chuyển đổi từ bất kỳ cơ sở nào sang số thập phân, hãy tìm tổng của tất cả [chữ số*(cơ sở^nguồn)] (trong đó công suất là 0 thành [numofdigits-1]) theo thứ tự ngược của các chữ số.convert b1→Decimal→b2. So, to convert from any base to Decimal, find the sum of all [digit*(base^power)] (where power is 0 to [NumOfDigits-1]) in the reverse order of the digits. |