Hướng dẫn decimal to binary python recursion - thập phân sang nhị phân python đệ quy
Số thập phân được chuyển đổi thành nhị phân bằng cách chia số liên tiếp cho 2 và in phần còn lại theo thứ tự ngược lại. Show
Mã nguồn
Đầu ra 100010 Bạn có thể thay đổi biến DEC trong chương trình trên và chạy nó để kiểm tra các giá trị khác. Chương trình này chỉ hoạt động cho toàn bộ số. Nó không hoạt động cho các số thực có các giá trị phân số như: 25,5, 45,64, v.v. Chúng tôi khuyến khích bạn tạo chương trình Python chuyển đổi số thập phân thành nhị phân cho tất cả các số thực của riêng bạn. Để cải thiện câu trả lời của RNBGuy, tôi đã thấy rằng khi đầu vào của bạn là bất kỳ số nào ngoại trừ Để loại bỏ điều này, giải pháp duy nhất tôi đưa ra là thêm một biến toàn cầu ghi nhớ giá trị trước đó của modulo 1000100:
Lý do đằng sau điều này là khi bạn thử 1000101 đầu ra là 1000102, vì vậy chúng tôi biết đầu ra phải là một đơn giản. Nhưng nếu chúng ta có một số lớn hơn 0, hàm đệ quy sẽ luôn kết thúc phân chia 1000104 và 1000105 sẽ xuất ra giống như 1000106. Để trốn tránh một ____99 khác vào cuối đầu ra của chúng tôi, chúng tôi sẽ lưu 1000108 của 1000105 trong biến toàn cầu 0 và kiểm tra khi 1 trong trường hợp thứ hai vì chúng tôi hiện có 2.Before::
After::
Lưu ý rằng chúng tôi phải thêm 3 cùng với 4 hoặc nếu không 5 sẽ không có gì vì mã cuối cùng được thực thi đặt 0 thành 1000108. Đệ quy nhị phân là gì? Trong đệ quy nhị phân, chức năng tự gọi hai lần trong mỗi lần chạy. Do đó, tính toán phụ thuộc vào hai kết quả từ hai cuộc gọi đệ quy khác nhau đến chính nó. Nếu chúng ta nhìn vào chức năng tạo ra chuỗi Fibonacci của chúng ta, chúng ta có thể dễ dàng thấy rằng đó là một đệ quy nhị phân. Làm thế nào để bạn chuyển đổi một số thập phân thành nhị phân? Đệ quy nhị phân là gì? Trong đệ quy nhị phân, chức năng tự gọi hai lần trong mỗi lần chạy. Do đó, tính toán phụ thuộc vào hai kết quả từ hai cuộc gọi đệ quy khác nhau đến chính nó. Nếu chúng ta nhìn vào chức năng tạo ra chuỗi Fibonacci của chúng ta, chúng ta có thể dễ dàng thấy rằng đó là một đệ quy nhị phân. Làm thế nào để bạn chuyển đổi một số thập phân thành nhị phân? Cách đơn giản nhất để chuyển đổi số thập phân thành số nhị phân là chia số đã cho nhiều lần cho đến khi chúng ta nhận được 0 làm thương số. Sau đó, chúng tôi viết phần còn lại theo thứ tự ngược lại để có được giá trị nhị phân của số thập phân đã cho. Xem thảo luận Input : 7 Output :111 Input :10 Output :1010 Cải thiện bài viết findBinary(decimal) if (decimal == 0) binary = 0 else binary = decimal % 2 + 10 * (findBinary(decimal / 2) Lưu bài viết C++ 8Đọc Bàn luận 6Cho một số thập phân làm đầu vào, chúng ta cần viết một chương trình để chuyển đổi số thập phân đã cho thành số nhị phân tương đương. & NBSP; Ví dụ: & nbsp; 7 4Chúng tôi đã thảo luận về một giải pháp lặp trong bài viết dưới đây. & NBSP; Chương trình cho thập phân sang nhị phân chuyển đổi nhị phân là giải pháp đệ quy: 8 9Input : 7 Output :111 Input :10 Output :10100 Từng bước quy trình để hiểu rõ hơn về cách thức hoạt động của thuật toán & nbsp; hãy để số thập phân là 10. & nbsp; % 2 bằng---too 1 + 10 * (5/2) % 2Step 3-> 2 % 2 bằng nhau---too 0 + 10 * (2/2) % 2STEP 4-> 1 % 2 Quá 1 + 10 * (1/2) % 2 6 9 0 1 7Input : 7 Output :111 Input :10 Output :10108 2 3 2 5Input : 7 Output :111 Input :10 Output :10100 >>> print dec2bin(22) 010110 >>> print dec2bin(0) 0 7>>> print dec2bin(22) 010110 >>> print dec2bin(0) 0 8 >>> print dec2bin(22) 010110 >>> print dec2bin(0) 0 9findBinary(decimal) if (decimal == 0) binary = 0 else binary = decimal % 2 + 10 * (findBinary(decimal / 2)3 Bàn luận 6 7 8 9 0 1 2 7 4 0 1 7 8 9Input : 7 Output :111 Input :10 Output :10100 2 Input : 7 Output :111 Input :10 Output :10102 6 7 2 Input : 7 Output :111 Input :10 Output :10106 7'0' 0'0' 1'0' 2'0' 3 7 1 2Input : 7 Output :111 Input :10 Output :10100 Java
10001000 10001001 6 710001004 2 3 2 5 7 6 0 8 10001013 0 10001015 10001016 1 0 10001019 0 4 0 1 10001024 10001025 10001026 10001027 10001028 810001030 10001025 10001032 7Input : 7 Output :111 Input :10 Output :10100 10001035 10001004 10001037 10001038 6 7 2 10001042 10001027 10001019 710001046 Input : 7 Output :111 Input :10 Output :10100 Input : 7 Output :111 Input :10 Output :10100 Python310001049 10001050 7 8 10001053 10001054 10001054 0 10001057 0 1 0 7 410001057 0 1 10001066 10001067 10001025 10001069 10001027 10001028 Các 10001053 10001054 10001027 10001083 10001084 C# 9 10001086 10001000 10001001 6 710001004 2 3 2 5 7 6 0 8 10001013 0 10001015 10001016 1 0 10001019 0 4 0 1 7 8 9 7Input : 7 Output :111 Input :10 Output :10100 0 1 10001024 10001025 10001026 10001027 10001028 7 610001035 10001004 10001037 10001038 0 24 7Input : 7 Output :111 Input :10 Output :10100 Input : 7 Output :111 Input :10 Output :10100 >>> print dec2bin(22) 010110 >>> print dec2bin(0) 0 7>>> print dec2bin(22) 010110 >>> print dec2bin(0) 0 2 100010 42100010 27100010 19 2810001049 10001050 6 7 8 10001053 10001054 10001054 0 10001057 0 1 2 7 4 0 1 0 0 1 10001066 10001067 10001025 10001069 10001027 10001028 Input : 7 Output :111 Input :10 Output :10100 Các 10001053 10001054 10001027 60prev = 0 def dec2bin(n): global prev if n < 0: return 'Must be a positive integer' elif n == 0: if prev == 0: return '0' else: prev = 0 return '' else: m = n%2 prev = m return dec2bin(n//2) + str(m) 9 100010 86 61 0 8 9 6 7 8 9 0 1 2 7 410001016 1 2 8 77Input : 7 Output :111 Input :10 Output :10100 710001035 10001004 10001037 17 81 82 0 2 Input : 7 Output :111 Input :10 Output :10106 C++ 83PHP 29 3 3110001015 6 7 8 '0' 1 31 38 0 1 '0' 1 31 48 8 3 31 52 0 05 0 8 08 09 10 1110001019 0 4 09 10'0' 10001019 7Input : 7 Output :111 Input :10 Output :10100 Input : 7 Output :111 Input :10 Output :10100 2 Input : 7 Output :111 Input :10 Output :10102 6 7 26 2710001019 7 30 7 32 7 1 2Input : 7 Output :111 Input :10 Output :10100 Java
610001000 10001001 710001004 2 3 2 5 7 6 0 8 10001013 0 10001015 10001016 96 97 98'0' 0010001016 1 0 10001019 10001016 69 2 7110001025 10001032 0 1 10001024 10001025 10001026 10001027 10001028 81 10 1110001019 10001016 4 81 10'0' 10001019 0Input : 7 Output :111 Input :10 Output :10100 10001035 10001004 10001037 10001038 7 2 10001042 10001027 10001019 0 88 02 00 0 05 7Input : 7 Output :111 Input :10 Output :10100 Input : 7 Output :111 Input :10 Output :10100 Python310001049 10001050 7 8 10001053 10001054 10001054 0 10001057 0 1 0 0 1 10001066 10001067 10001025 10001069 10001027 10001028 Các 10001053 10001054 10001027 10001083 42C# 9 10001086 0 8 9 710001004 49 50 2710001019 710001004 10001037 88 2 51 7 6 0 8 9410001016 96 97 98'0' 00 0 4 610001016 69 2 7610001016 8 79 81 10 1110001019 10001016 4 81 10'0' 10001019 0Input : 7 Output :111 Input :10 Output :10100 7Input : 7 Output :111 Input :10 Output :10100 9410001004 10001037 97 7 99 7Input : 7 Output :111 Input :10 Output :101001 94Input : 7 Output :111 Input :10 Output :10100 Input : 7 Output :111 Input :10 Output :10100 JavaScript 61 7Input : 7 Output :111 Input :10 Output :101007 2710001019 7 29 Input : 7 Output :111 Input :10 Output :101012 7 6 0 8 9410001016 Input : 7 Output :111 Input :10 Output :101019 '0' Input : 7 Output :111 Input :10 Output :101021 0 4 610001016 410001016 8 79 81 10 1110001019 10001016 4 81 10'0' 10001019 0Input : 7 Output :111 Input :10 Output :10100 7Input : 7 Output :111 Input :10 Output :10100 7 99 7Input : 7 Output :111 Input :10 Output :101047 82
100000000000000000000 JavaScript: O(logn) where n is given decimal number
Làm thế nào để bạn chuyển đổi thập phân thành nhị phân trong Python?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. 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.use the 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. Note: bin() return binary value with the prefix 0b, so depending on the use-case, formatting should be done to remove 0b.
Làm thế nào chuyển đổi thập phân thành nhị phân mà không có chức năng sẵn có trong Python?Chương trình Python để in nhị phân tương đương với một số mà không sử dụng đệ quy.. Lấy một số từ người dùng .. Sử dụng vòng lặp trong thời gian, chuyển đổi từng chữ số thành nhị phân và nối nó vào danh sách .. Đảo ngược danh sách và sử dụng một vòng lặp in các yếu tố của danh sách .. Đệ quy nhị phân là gì?Trong đệ quy nhị phân, chức năng tự gọi hai lần trong mỗi lần chạy.Do đó, tính toán phụ thuộc vào hai kết quả từ hai cuộc gọi đệ quy khác nhau đến chính nó.Nếu chúng ta nhìn vào chức năng tạo ra chuỗi Fibonacci của chúng ta, chúng ta có thể dễ dàng thấy rằng đó là một đệ quy nhị phân.the function calls itself twice in each run. As a result, the calculation depends on two results from two different recursive calls to itself. If we look at our Fibonacci sequence generation recursive function, we can easily find that it is a binary recursion.
Làm thế nào để bạn chuyển đổi một số thập phân thành nhị phân?Cách đơn giản nhất để chuyển đổi số thập phân thành số nhị phân là chia số đã cho nhiều lần cho đến khi chúng ta nhận được 0 làm thương số.Sau đó, chúng tôi viết phần còn lại theo thứ tự ngược lại để có được giá trị nhị phân của số thập phân đã cho.dividing the given number repeatedly by 2 until we get 0 as the quotient. Then, we write the remainders in the reverse order to get the binary value of the given decimal number. |