64-बिट सिस्टम पर Rust में 128-बिट पूर्णांक i128 और u128 कैसे काम करते हैं?
सभी को नमस्कार! मैंने Rust सीखना शुरू किया और एक दिलचस्प बात पर ध्यान दिया: भाषा में बिल्ट-इन 128-बिट पूर्णांक (`i128` और `u128`) हैं। मेरे पास 64-बिट प्रोसेसर (AMD Ryzen) है, और मुझे समझ नहीं आता कि प्रोसेसर, जो 64-बिट रजिस्टरों पर काम करता है, 128-बिट संख्याओं के साथ हार्डवेयर स्तर पर कैसे काम कर सकता है? क्या इसके लिए CPU पर विशेष समर्थन की आवश्यकता नहीं है?
मैंने एक सरल कोड लिखा:
```rust
fn main() {
let a: i128 = 170141183460469231731687303715884105727;
let b: i128 = 1;
let c = a + b;
println!("परिणाम: {}", c);
}
```
कोड काम करता है, लेकिन मैं समझना चाहता हूँ:
1. कंपाइलर ऐसे ऑपरेशनों को कैसे संभालता है? क्या वह उन्हें कई 64-बिट निर्देशों के माध्यम से एमुलेट करता है?
2. क्या `i64` की तुलना में प्रदर्शन में कोई हानि है?
3. `i128` का उपयोग कब समझ में आता है, और कब `i64` से काम चलाना बेहतर है?
मैं असेंबली कोड या आंतरिक संरचना के उदाहरणों के साथ विस्तृत स्पष्टीकरण के लिए आभारी रहूंगा।
<<>>