gpt4 book ai didi

c - 如何用 C 中表示为数组的数字进行数学运算?

转载 作者:行者123 更新时间:2023-11-30 19:41:30 25 4
gpt4 key购买 nike

我有一些unsigned char数组。我想表示一个大数,并在这个大数上加上一个数。

例如,我有以下六个元素:

0x00, 0x00, 0x00, 0x00, 0x00, 0xdf

我想添加0x11并获取

0x00, 0x00, 0x00, 0x00, 0x00, 0xf0

所以,如果我在后面添加0x10,我应该有

0x00, 0x00, 0x00, 0x01, 0x00

我可以用二元运算或其他运算但没有循环来完成它吗?我的数组可能比六个元素大得多。

最佳答案

对源数组中的每对字节求和,如果结果大于 0xFF,则将 1 传送到下一个字节。需要一个循环。

//Adds B to A, Len is the amount of bytes that will be added.
//Make sure that Len <= size of A
void Add(unsigned char *A, unsigned char *B, int Len)
{
int Carry = 0;

//Work backwards because the high byte of your array holds the least significant byte.
for (int i = Len - 1; i >= 0; i--)
{
int Temp = (int) A[i] + B[i];
A[i] = (Temp + Carry) & 0xFF;
if ((Temp + Carry) > 0xFF)
Carry = 1;
else
Carry = 0;
}
}

关于c - 如何用 C 中表示为数组的数字进行数学运算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33475947/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com