मैं दशमलव में कनवर्ट किए बिना पायथन में द्विआधारी संख्याओं को कैसे जोड़, घटा, और तुलना कर सकता हूं?
मैं दशमलव में कनवर्ट किए बिना पायथन में द्विआधारी संख्याओं को कैसे जोड़, घटा, और तुलना कर सकता हूं?
जवाबों:
आप बिन () और इंट () का उपयोग करके बाइनरी के एक स्ट्रिंग प्रतिनिधित्व के बीच परिवर्तित कर सकते हैं
>>> bin(88)
'0b1011000'
>>> int('0b1011000', 2)
88
>>>
>>> a=int('01100000', 2)
>>> b=int('00100110', 2)
>>> bin(a & b)
'0b100000'
>>> bin(a | b)
'0b1100110'
>>> bin(a ^ b)
'0b1000110'
int('01100111',2)
आप 0b01100111
उदाहरण के लिए लिखें , जो है 103
।
मुझे लगता है कि आप इस बारे में भ्रमित हैं कि बाइनरी क्या है। बाइनरी और दशमलव एक संख्या के अलग-अलग प्रतिनिधित्व हैं - जैसे 101 आधार 2 और 5 आधार 10 एक ही संख्या हैं। परिचालन संख्याओं को जोड़ते, घटाते और तुलना करते हैं - 101 आधार 2 == 5 आधार 10 और इसके अलावा एक ही तार्किक ऑपरेशन है चाहे आप किस आधार पर काम कर रहे हों। यह तथ्य कि आपका अजगर इंटरप्रेटर बाइनरी आंतरिक रूप से बाइनरी के रूप में चीजों को स्टोर कर सकता है। 'यह प्रभावित नहीं करता कि आप इसके साथ कैसे काम करते हैं - यदि आपके पास पूर्णांक प्रकार है, तो बस +, - आदि का उपयोग करें।
यदि आपके पास बाइनरी अंकों के तार हैं, तो आपको अपने स्वयं के कार्यान्वयन को लिखना होगा या उन्हें इंट (बाइनरीस्ट्रिंग, 2) फ़ंक्शन का उपयोग करके परिवर्तित करना होगा।
यदि आप बिटकॉइन ऑपरेटरों के बारे में बात कर रहे हैं, तो आप इसके बाद हैं:
~ Not
^ XOR
| Or
& And
अन्यथा, बाइनरी नंबर दशमलव संख्याओं के समान ही काम करते हैं, क्योंकि संख्याएं संख्याएं हैं, चाहे आप उन्हें कैसे भी देखें। दशमलव और बाइनरी के बीच एकमात्र अंतर यह है कि हम उस डेटा का प्रतिनिधित्व कैसे करते हैं जब हम इसे देख रहे होते हैं।
बाइनरी, दशमलव, हेक्साडेसिमल ... आधार केवल तब ही मायने रखता है जब संख्याओं को पढ़ना या आउटपुट करना, बाइनरी संख्याओं को जोड़ना दशमलव संख्या को जोड़ने के समान है: यह केवल प्रतिनिधित्व का मामला है।
नीचे पहले से पोस्ट किए गए फ़ंक्शन का फिर से लिखना है:
def addBinary(a, b): # Example: a = '11' + b =' 100' returns as '111'.
for ch in a: assert ch in {'0','1'}, 'bad digit: ' + ch
for ch in b: assert ch in {'0','1'}, 'bad digit: ' + ch
sumx = int(a, 2) + int(b, 2)
return bin(sumx)[2:]
'''
I expect the intent behind this assignment was to work in binary string format.
This is absolutely doable.
'''
def compare(bin1, bin2):
return bin1.lstrip('0') == bin2.lstrip('0')
def add(bin1, bin2):
result = ''
blen = max((len(bin1), len(bin2))) + 1
bin1, bin2 = bin1.zfill(blen), bin2.zfill(blen)
carry_s = '0'
for b1, b2 in list(zip(bin1, bin2))[::-1]:
count = (carry_s, b1, b2).count('1')
carry_s = '1' if count >= 2 else '0'
result += '1' if count % 2 else '0'
return result[::-1]
if __name__ == '__main__':
print(add('101', '100'))
मैं पाठक के लिए एक व्यायाम के रूप में घटाव दुर्गंध छोड़ता हूं।
यकीन नहीं तो सहायक
class Solution:
# @param A : string
# @param B : string
# @return a strings
def addBinary(self, A, B):
num1 = bin(int(A, 2))
num2 = bin(int(B, 2))
bin_str = bin(int(num1, 2)+int(num2, 2))
b_index = bin_str.index('b')
return bin_str[b_index+1:]
s = Solution()
print(s.addBinary("11", "100"))
x = x + 1 प्रिंट (x) a = x + 5 प्रिंट (ए)
मुझे लगता है कि आप इस बारे में भ्रमित हैं कि बाइनरी क्या है। बाइनरी और दशमलव एक संख्या के अलग-अलग प्रतिनिधित्व हैं - जैसे 101 आधार 2 और 5 आधार 10 एक ही संख्या हैं। परिचालन संख्याओं पर जोड़ते, घटाते और तुलना करते हैं - 101 आधार 2 == 5 आधार 10 और इसके अलावा एक ही तार्किक ऑपरेशन है चाहे आप किस आधार पर काम कर रहे हों।