ازگر نمبروں اور تاروں کو بائنری، آکٹل، اور ہیکساڈیسیمل نمبروں کے ساتھ ساتھ معمول کے اعشاریہ نمبروں کو بھی سنبھال سکتا ہے۔ ان کے درمیان تبدیل کرنا بھی آسان ہے۔
اس سیکشن میں، نمونہ کوڈ کے ساتھ مندرجہ ذیل مواد کی وضاحت کی جائے گی۔
- بائنری، آکٹل اور ہیکسا ڈیسیمل میں عددی عدد لکھیں۔
- نمبروں کو بائنری، آکٹل، اور ہیکساڈیسیمل اشارے میں تاروں میں تبدیل کریں۔
- بلٹ ان فنکشن (مثال کے طور پر پروگرامنگ زبان میں)
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
- bin() — Built-in Functions — Python 3.10.0 Documentation
- oct() — Built-in Functions — Python 3.10.0 Documentation
- hex() — Built-in Functions — Python 3.10.0 Documentation
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


