प्रोग्रामिंग नंबर फॉर्मेट

भाषाएं संख्याओं को कैसे संभालती हैं

नंबर फॉर्मेट समझें

हर प्रोग्रामिंग भाषा को संख्याओं को दर्शाने के तरीकों की आवश्यकता होती है। Integer प्रकार, floating-point फॉर्मेट, और संख्या आधार नोटेशन को समझने से आपको सही कोड लिखने और प्रिसिजन, ओवरफ्लो, और प्रतिनिधित्व से संबंधित सूक्ष्म बग से बचने में मदद मिलती है।

Integer प्रकार

निश्चित-आकार Integers

प्रकारबिटSigned रेंजUnsigned रेंज
int88-128 से 1270 से 255
int1616-32,768 से 32,7670 से 65,535
int3232-2.1B से 2.1B0 से 4.3B
int6464±9.2 quintillion0 से 18.4 quintillion

भाषा उदाहरण

  • C/C++: int, long, int32_t, uint64_t
  • Java: byte, short, int, long
  • Rust: i8, i16, i32, i64, u8, u16, u32, u64
  • Go: int8, int16, int32, int64

Floating-Point संख्याएं

IEEE 754 मानक

  • float (32-बिट): ~7 दशमलव अंक प्रिसिजन
  • double (64-बिट): ~15-16 दशमलव अंक प्रिसिजन

संरचना

  • साइन बिट (1 बिट)
  • एक्सपोनेंट (8 या 11 बिट)
  • मंटिसा/सिग्निफिकैंड (23 या 52 बिट)

प्रसिद्ध समस्या

0.1 + 0.2 = 0.30000000000000004

ऐसा इसलिए होता है क्योंकि 0.1 और 0.2 को बाइनरी floating-point में सटीक रूप से दर्शाया नहीं जा सकता।

भाषा के अनुसार नंबर बेस नोटेशन

भाषाबाइनरीऑक्टलHex
JavaScript0b10100o120x0A
Python 30b10100o120x0A
C/C++/Java0b1010*0120x0A
C#0b10100x0A
Ruby0b10100o120x0A
Go0b10100o120x0A
Rust0b10100o120x0A

*C: बाइनरी लिटरल C23 में जोड़े गए; C++14 और Java 7+ इन्हें सपोर्ट करते हैं।

JavaScript संख्याएं

विशेषताएं

  • सभी संख्याएं 64-बिट floating-point (IEEE 754) हैं
  • सुरक्षित integer रेंज: ±9,007,199,254,740,991 (2⁵³-1)
  • बड़े integers के लिए BigInt (ES2020+)

नंबर लिटरल

let dec = 255;        // Decimal
let hex = 0xFF;       // Hexadecimal
let bin = 0b11111111; // Binary
let oct = 0o377;      // Octal
let big = 9007199254740992n; // BigInt

सावधानियाँ

  • 0.1 + 0.2 !== 0.3 (floating-point)
  • parseInt('08') === 8 (आधुनिक JS में ठीक किया गया)

Python संख्याएं

विशेषताएं

  • Integers में मनमानी प्रिसिजन है (कोई ओवरफ्लो नहीं)
  • Floats 64-बिट IEEE 754 हैं
  • Complex संख्याएं बिल्ट-इन हैं

नंबर लिटरल

dec = 255          # Decimal
hex_num = 0xFF     # Hexadecimal  
bin_num = 0b11111111  # Binary
oct_num = 0o377    # Octal
complex_num = 3+4j # Complex

रूपांतरण

bin(255)  # '0b11111111'
hex(255)  # '0xff'
oct(255)  # '0o377'
int('FF', 16)  # 255

मनमानी प्रिसिजन संख्याएं

कब ज़रूरत होती है

  • क्रिप्टोग्राफी (बड़ी कुंजियाँ)
  • वित्तीय गणनाएं (सटीक दशमलव)
  • वैज्ञानिक कंप्यूटिंग (अत्यधिक प्रिसिजन)

भाषा सपोर्ट

  • Python: int (हमेशा मनमानी प्रिसिजन)
  • JavaScript: BigInt (integers के लिए)
  • Java: BigInteger, BigDecimal
  • C#: BigInteger, decimal

उदाहरण: JavaScript BigInt

const big = 9007199254740993n;
const result = big * 2n;  // n प्रत्यय ज़रूरी

फॉर्मेटेड आउटपुट

JavaScript

num.toString(2)   // Binary string
num.toString(16)  // Hex string
num.toFixed(2)    // 2 decimal places

Python

f"{255:b}"    # '11111111' (binary)
f"{255:x}"    # 'ff' (hex)
f"{255:08b}"  # '11111111' (padded)

C/C++

printf("%d", num);   // Decimal
printf("%x", num);   // Hex (lowercase)
printf("%X", num);   // Hex (uppercase)
printf("%o", num);   // Octal

बिटवाइज़ ऑपरेशन

अधिकांश भाषाओं में integer प्रकारों के लिए उपलब्ध:

ऑपरेशनचिह्नउदाहरण
AND&5 & 3 = 1
OR|5 | 3 = 7
XOR^5 ^ 3 = 6
NOT~~5 = -6
Left shift<<5 << 1 = 10
Right shift>>5 >> 1 = 2

निष्कर्ष

प्रोग्रामिंग भाषाएं विभिन्न प्रकारों के माध्यम से संख्याओं को संभालती हैं: निश्चित-आकार integers (int32, int64), floating-point (float, double), और मनमानी प्रिसिजन प्रकार (BigInt, BigDecimal)। बेस नोटेशन (0b, 0o, 0x उपसर्ग) और प्रत्येक प्रकार की सीमाओं को समझना—विशेषकर floating-point प्रिसिजन समस्याएं—सूक्ष्म बग से बचने में मदद करता है। जब सटीक दशमलव अंकगणित महत्वपूर्ण हो (वित्त, मुद्राएं), तो floating-point के बजाय विशेष decimal प्रकारों का उपयोग करें।

संबंधित लेख

प्रोग्रामिंग नंबर फॉर्मेट: भाषा गाइड | YounitConverter