python पाइथन में दशमलव को बाइनरी में कनवर्ट करें




हेक्साडेसिमल (8)

आप numpy मॉड्यूल से एक फ़ंक्शन का भी उपयोग कर सकते हैं

from numpy import binary_repr

जो अग्रणी शून्य को भी संभाल सकता है:

Definition:     binary_repr(num, width=None)
Docstring:
    Return the binary representation of the input number as a string.

    This is equivalent to using base_repr with base 2, but about 25x
    faster.

    For negative numbers, if width is not given, a - sign is added to the
    front. If width is given, the two's complement of the number is
    returned, with respect to that width.

https://code.i-harness.com

इस प्रश्न का उत्तर यहां दिया गया है:

क्या पाइथन में कोई मॉड्यूल या फ़ंक्शन है जिसका उपयोग मैं दशमलव संख्या को अपने बाइनरी समकक्ष में परिवर्तित करने के लिए कर सकता हूं? मैं int ('[binary_value]', 2) का उपयोग करके बाइनरी को दशमलव में परिवर्तित करने में सक्षम हूं, इसलिए कोड को लिखने के बिना इसे रिवर्स करने का कोई तरीका है?


पूरा होने के लिए: यदि आप निश्चित बिंदु प्रतिनिधित्व को अपने बाइनरी समकक्ष में परिवर्तित करना चाहते हैं तो आप निम्न परिचालन कर सकते हैं:

  1. पूर्णांक और fractional भाग प्राप्त करें।

    from decimal import *
    a = Decimal(3.625)
    a_split = (int(a//1),a%1)
    
  2. अपने बाइनरी प्रतिनिधित्व में आंशिक भाग को कनवर्ट करें। यह 2 से सफलतापूर्वक गुणा करने के लिए।

    fr = a_split[1]
    str(int(fr*2)) + str(int(2*(fr*2)%1)) + ...
    

आप here स्पष्टीकरण पढ़ सकते हैं।


मैं @ aaronasterling के जवाब से सहमत हूं। हालांकि, अगर आप एक गैर-बाइनरी स्ट्रिंग चाहते हैं जिसे आप एक int में डाल सकते हैं, तो आप कैनोलिक एल्गोरिदम का उपयोग कर सकते हैं:

def decToBin(n):
    if n==0: return ''
    else:
        return decToBin(n/2) + str(n%2)


सभी संख्या बाइनरी में संग्रहीत हैं। यदि आप बाइनरी में किसी दिए गए नंबर का टेक्स्ट प्रतिनिधित्व चाहते हैं, तो bin(i) उपयोग करें

>>> bin(10)
'0b1010'
>>> 0b1010
10

"{0:#b}".format(my_int)

def dec_to_bin(x):
    return int(bin(x)[2:])

इट्स दैट ईजी।


n=int(input('please enter the no. in decimal format: '))
x=n
k=[]
while (n>0):
    a=int(float(n%2))
    k.append(a)
    n=(n-a)/2
k.append(0)
string=""
for j in k[::-1]:
    string=string+str(j)
print('The binary no. for %d is %s'%(x, string))




decimal