بائنری، آکٹل، اور ہیکساڈیسیمل نمبرز اور تاروں کو ازگر میں ایک دوسرے میں تبدیل کریں

کاروبار

ازگر نمبروں اور تاروں کو بائنری، آکٹل، اور ہیکساڈیسیمل نمبروں کے ساتھ ساتھ معمول کے اعشاریہ نمبروں کو بھی سنبھال سکتا ہے۔ ان کے درمیان تبدیل کرنا بھی آسان ہے۔

اس سیکشن میں، نمونہ کوڈ کے ساتھ مندرجہ ذیل مواد کی وضاحت کی جائے گی۔

  • بائنری، آکٹل اور ہیکسا ڈیسیمل میں عددی عدد لکھیں۔
  • نمبروں کو بائنری، آکٹل، اور ہیکساڈیسیمل اشارے میں تاروں میں تبدیل کریں۔
    • بلٹ ان فنکشن (مثال کے طور پر پروگرامنگ زبان میں)bin()،oct()،hex()
    • تار کا طریقہstr.format()، بلٹ ان افعالformat(), f سٹرنگ
    • منفی عدد کو دو کی تکمیلی شکل میں سٹرنگ میں تبدیل کریں۔
  • بائنری، آکٹل، اور ہیکساڈیسیمل اشارے میں تاروں کو نمبروں میں تبدیل کریں۔
    • بلٹ ان فنکشن (مثال کے طور پر پروگرامنگ زبان میں)int()
  • درخواست کی مثالیں۔
    • بائنری سٹرنگ ریاضی
    • بائنری، آکٹل اور ہیکسا ڈیسیمل نمبروں کے درمیان تبدیل کریں۔

بائنری، آکٹل اور ہیکسا ڈیسیمل میں عددی عدد لکھیں۔

درج ذیل سابقوں کو جوڑ کر، انٹیجر انٹ نمبرز کو بالترتیب بائنری، آکٹل اور ہیکساڈیسیمل میں لکھا جا سکتا ہے۔
آپ بڑے حروف بھی استعمال کر سکتے ہیں۔

  • بائنری نمبر:0bیا0B
  • اوکٹل:0oیا0O
  • ہیکساڈیسیمل نمبر:0xیا0X

پرنٹ() کا آؤٹ پٹ اعشاریہ اشارے میں ہوگا۔

bin_num = 0b10
oct_num = 0o10
hex_num = 0x10

print(bin_num)
print(oct_num)
print(hex_num)
# 2
# 8
# 16

Bin_num = 0B10
Oct_num = 0O10
Hex_num = 0X10

print(Bin_num)
print(Oct_num)
print(Hex_num)
# 2
# 8
# 16

یہاں تک کہ سابقہ ​​کے ساتھ، قسم ایک عدد int ہے۔

print(type(bin_num))
print(type(oct_num))
print(type(hex_num))
# <class 'int'>
# <class 'int'>
# <class 'int'>

print(type(Bin_num))
print(type(Oct_num))
print(type(Hex_num))
# <class 'int'>
# <class 'int'>
# <class 'int'>

چونکہ یہ ایک عدد عددی قسم ہے، اس لیے اسے باقاعدہ ریاضی کی کارروائیوں کے لیے استعمال کیا جا سکتا ہے۔

result = 0b10 * 0o10 + 0x10
print(result)
# 32

Python 3.6 کے ساتھ شروع کرتے ہوئے، اعداد میں انڈر سکور _ داخل کرنا ممکن ہے۔ انڈر سکور _ کو دہرانے کے نتیجے میں ایک غلطی ہو جائے گی، لیکن آپ جتنے چاہیں داخل کر سکتے ہیں جب تک کہ آپ اسے نہ دہرائیں۔

_ انڈر سکور نمبر پر اثر انداز نہیں ہوتا ہے، لہذا جب بہت سے ہندسے ہوں تو اسے الگ کرنے والے کے طور پر استعمال کیا جا سکتا ہے۔ مثال کے طور پر، ہر چار ہندسوں پر ایک انڈر سکور _ داخل کرنا پڑھنا آسان ہے۔

print(0b111111111111 == 0b1_1_1_1_1_1_1_1_1_1_1_1)
# True

bin_num = 0b1111_1111_1111
print(bin_num)
# 4095

نمبروں کو بائنری، آکٹل، اور ہیکساڈیسیمل اشارے میں تاروں میں تبدیل کریں۔

بائنری، آکٹل، یا ہیکساڈیسیمل اشارے میں کسی نمبر کو سٹرنگ میں تبدیل کرنے کے لیے، درج ذیل بلٹ ان فنکشنز کا استعمال کریں۔

  • بلٹ ان فنکشن (مثال کے طور پر پروگرامنگ زبان میں)bin()،oct()،hex()
  • تار کا طریقہstr.format()، بلٹ ان افعالformat(), f سٹرنگ

یہ سیکشن یہ بھی بتاتا ہے کہ منفی اقدار کے لیے دو کے تکمیلی فارمیٹ میں ظاہر کردہ سٹرنگ کیسے حاصل کی جائے۔

بلٹ ان فنکشنز bin(), oct(), hex()

درج ذیل بلٹ ان فنکشن نمبروں کو بائنری، آکٹل اور ہیکساڈیسیمل سٹرنگز میں تبدیل کر سکتے ہیں۔

  • بائنری نمبر:bin()
  • اوکٹل:oct()
  • ہیکساڈیسیمل نمبر:hex()

ہر ایک درج ذیل سابقوں کے ساتھ ایک تار لوٹاتا ہے۔

  • بائنری نمبر:0b
  • اوکٹل:0o
  • ہیکساڈیسیمل نمبر:0x
i = 255

print(bin(i))
print(oct(i))
print(hex(i))
# 0b11111111
# 0o377
# 0xff

print(type(bin(i)))
print(type(oct(i)))
print(type(hex(i)))
# <class 'str'>
# <class 'str'>
# <class 'str'>

اگر آپ کو سابقہ ​​کی ضرورت نہیں ہے تو، اس کے پیچھے کی تار کو نکالنے کے لیے slice[2:] استعمال کریں، یا format() کا استعمال کریں جیسا کہ اگلی وضاحت کی گئی ہے۔

print(bin(i)[2:])
print(oct(i)[2:])
print(hex(i)[2:])
# 11111111
# 377
# ff

اگر آپ اسے ڈیسیمل سٹرنگ میں تبدیل کرنا چاہتے ہیں تو آپ str() استعمال کر سکتے ہیں۔

print(str(i))
# 255

print(type(str(i)))
# <class 'str'>

بلٹ ان فنکشن فارمیٹ ()، سٹرنگ طریقہ str.format()، f سٹرنگ

بلٹ ان فنکشن فارمیٹ() اور سٹرنگ کے طریقے str.format() اور f-string نمبروں کو بائنری، آکٹل اور ہیکساڈیسیمل سٹرنگز میں بھی تبدیل کر سکتے ہیں۔

فارمیٹ () کی دوسری دلیل کو مندرجہ ذیل طور پر بیان کرتے ہوئے، اسے بالترتیب بائنری، آکٹل اور ہیکساڈیسیمل سٹرنگز میں تبدیل کیا جا سکتا ہے۔

  • بائنری نمبر:b
  • اوکٹل:o
  • ہیکساڈیسیمل نمبر:x
print(format(i, 'b'))
print(format(i, 'o'))
print(format(i, 'x'))
# 11111111
# 377
# ff

print(type(format(i, 'b')))
print(type(format(i, 'o')))
print(type(format(i, 'x')))
# <class 'str'>
# <class 'str'>
# <class 'str'>

اگر آپ سابقہ ​​0b,0o,0x کے ساتھ سٹرنگ حاصل کرنا چاہتے ہیں، تو فارمیٹنگ کی تفصیلات کے اسٹرنگ میں # شامل کریں۔

print(format(i, '#b'))
print(format(i, '#o'))
print(format(i, '#x'))
# 0b11111111
# 0o377
# 0xff

ہندسوں کی کسی بھی تعداد کے ساتھ 0 کو بھرنا بھی ممکن ہے۔ نوٹ کریں کہ سابقہ ​​(دو حروف) کے لیے حروف کی تعداد کو بھی پیش نظر رکھنا ضروری ہے جب کسی سابقے کے ساتھ صفر کو بھرتے ہیں۔

print(format(i, '08b'))
print(format(i, '08o'))
print(format(i, '08x'))
# 11111111
# 00000377
# 000000ff

print(format(i, '#010b'))
print(format(i, '#010o'))
print(format(i, '#010x'))
# 0b11111111
# 0o00000377
# 0x000000ff

سٹرنگ طریقہ str.format() کو بھی تبادلوں کے لیے استعمال کیا جا سکتا ہے۔

print('{:08b}'.format(i))
print('{:08o}'.format(i))
print('{:08x}'.format(i))
# 11111111
# 00000377
# 000000ff

Python 3.6 سے شروع کرتے ہوئے، آپ f سٹرنگ بھی استعمال کر سکتے ہیں۔f'xxx'

print(f'{i:08b}')
print(f'{i:08o}')
print(f'{i:08x}')
# 11111111
# 00000377
# 000000ff

منفی عدد کو دو کی تکمیلی شکل میں سٹرنگ میں تبدیل کریں۔

جب ایک منفی عدد کو bin() یا format( کا استعمال کرتے ہوئے بائنری یا ہیکساڈیسیمل سٹرنگ میں تبدیل کیا جاتا ہے، تو مطلق قدر میں مائنس کا نشان ہوگا۔

x = -9

print(x)
print(bin(x))
# -9
# -0b1001

Python میں، منفی عدد پر بٹ وائز آپریشنز بھی دو کی تکمیلی نمائندگی میں کیے جاتے ہیں۔ لہذا، اگر آپ دو کی تکمیلی شکل میں اظہار کردہ سٹرنگ حاصل کرنا چاہتے ہیں، تو آپ تھوڑا سا منطقی OR& مطلوبہ بٹ ہندسوں کی زیادہ سے زیادہ تعداد کے ساتھ، حسب ذیل۔

  • 4bit:0b1111(=0xf)
  • 8bit:0xff
  • 16bit:0xffff
print(bin(x & 0xff))
print(format(x & 0xffff, 'x'))
# 0b11110111
# fff7

بائنری، آکٹل، اور ہیکساڈیسیمل اشارے میں تاروں کو نمبروں میں تبدیل کریں۔

بلٹ ان فنکشن int()

بائنری، آکٹل، یا ہیکساڈیسیمل اشارے میں کسی سٹرنگ کو نمبر میں تبدیل کرنے کے لیے، بلٹ ان فنکشن int() استعمال کریں۔

int(string، radix) کے ساتھ، بائنری، آکٹل، ہیکساڈیسیمل اشارے وغیرہ میں ایک سٹرنگ str کو ریڈکس کی بنیاد پر عددی int میں تبدیل کیا جا سکتا ہے۔ اگر ریڈکس کو چھوڑ دیا جائے تو نمبر کو اعشاریہ سمجھا جاتا ہے۔

print(int('10'))
print(int('10', 2))
print(int('10', 8))
print(int('10', 16))
# 10
# 2
# 8
# 16

print(type(int('10')))
print(type(int('10', 2)))
print(type(int('10', 8)))
print(type(int('10', 16)))
# <class 'int'>
# <class 'int'>
# <class 'int'>
# <class 'int'>

اگر ریڈکس کو 0 پر سیٹ کیا جاتا ہے، تو تبدیلی درج ذیل سٹرنگ کے سابقہ ​​کی بنیاد پر کی جاتی ہے۔

  • بائنری سابقہ:0bیا0B
  • اوکٹل سابقہ:0oیا0O
  • ہیکساڈیسیمل سابقہ:0xیا0X
print(int('0b10', 0))
print(int('0o10', 0))
print(int('0x10', 0))
# 2
# 8
# 16

print(int('0B10', 0))
print(int('0O10', 0))
print(int('0X10', 0))
# 2
# 8
# 16

اگر بنیادی نمبر 0 ہے اور کوئی سابقہ ​​نہیں ہے، تو اسے اعشاریہ نمبر کے طور پر تبدیل کیا جائے گا، لیکن یاد رکھیں کہ اگر شروع (بائیں طرف) 0 سے بھرا ہوا ہے، تو ایک خرابی واقع ہوگی۔

print(int('10', 0))
# 10

# print(int('010', 0))
# ValueError: invalid literal for int() with base 0: '010'

دوسری صورتوں میں، صفر سے بھرے ہوئے تاروں کو اسی طرح تبدیل کیا جا سکتا ہے۔

print(int('010'))
# 10

print(int('00ff', 16))
print(int('0x00ff', 0))
# 255
# 255

اگر سٹرنگ کو مخصوص ریڈکس یا سابقہ ​​کے ساتھ تبدیل نہیں کیا جا سکتا ہے، تو ایک خرابی واقع ہوتی ہے۔

# print(int('ff', 2))
# ValueError: invalid literal for int() with base 2: 'ff'

# print(int('0a10', 0))
# ValueError: invalid literal for int() with base 0: '0a10'

# print(int('0bff', 0))
# ValueError: invalid literal for int() with base 0: '0bff'

درخواست کی مثالیں۔

بائنری سٹرنگ ریاضی

مثال کے طور پر، سابقہ ​​0b کے ساتھ بائنری اشارے میں سٹرنگ پر آپریشن کرنا۔

آپ اسے آسانی سے عددی قدر (انٹیجر ٹائپ int) میں تبدیل کر سکتے ہیں، اس پر آپریشن کر سکتے ہیں، اور پھر اسے دوبارہ سٹرنگ str میں تبدیل کر سکتے ہیں۔

a = '0b1001'
b = '0b0011'

c = int(a, 0) + int(b, 0)

print(c)
print(bin(c))
# 12
# 0b1100

بائنری، آکٹل اور ہیکسا ڈیسیمل نمبروں کے درمیان تبدیل کریں۔

بائنری، آکٹل، اور ہیکساڈیسیمل تاروں کو ایک دوسرے میں تبدیل کرنا بھی آسان ہے۔ ایک بار عددی int میں تبدیل ہو جانے کے بعد، اسے کسی بھی فارمیٹ کی سٹرنگ میں تبدیل کیا جا سکتا ہے۔

زیرو فلنگ، پریفکسنگ، وغیرہ کو فارمیٹنگ تفصیلات کے سٹرنگ سے کنٹرول کیا جا سکتا ہے۔

a_0b = '0b1110001010011'

print(format(int(a, 0), '#010x'))
# 0x00000009

print(format(int(a, 0), '#010o'))
# 0o00000011
Copied title and URL