Rust имеет 128-битные целые числа, они обозначены типом данных i128
(и u128
для беззнаковых целых):
let a: i128 = 170141183460469231731687303715884105727;
Как Rust заставляет эти значения i128
работать в 64-битной системе; например как это делает арифметику на них?
Поскольку, насколько мне известно, значение не может поместиться в один регистр процессора x86-64, компилятор как-то использует 2 регистра для одного значения i128
? Или они вместо этого используют какую-то большую целочисленную структуру для их представления?