Я работаю на C, и мне нужно складывать и вычитать 64-битное число и 128-битное число. Результат будет сохранен в виде 128-битного числа. Я использую целочисленный массив для хранения верхней и нижней половин 128-битного числа (т.е. uint64_t bigNum[2]
, где bigNum[0]
является наименее значимым).
Может ли кто-нибудь помочь с функцией сложения и вычитания, которая может принимать bigNum и добавлять / вычитать к нему uint64_t
?
Я видел много неправильных примеров в сети, поэтому учтите это:
bigNum[0] = 0;
bigNum[1] = 1;
subtract(&bigNum, 1);
На этом этапе для bigNum[0]
должны быть установлены все биты, а для bigNum[1]
биты не должны быть установлены.
abort()
ваша программа. - person R.. GitHub STOP HELPING ICE   schedule 21.01.2011