C语言实现8位二进制数组加法:位运算技巧
ba8_t ba8_add(ba8_t a, ba8_t b) { ba8_t res = 0; uint8_t carry = 0; // 进位标志 for (int i = 0; i < 8; i++) { uint8_t bit_a = get_bit_8(a, i); uint8_t bit_b = get_bit_8(b, i); uint8_t sum = bit_a ^ bit_b ^ carry; // 本位的和 carry = (bit_a & bit_b) | (bit_a & carry) | (bit_b & carry); // 计算进位 set_bit_8(res, i, sum); // 将本位的和写入结果中 } return res; }
原文地址: https://www.cveoy.top/t/topic/nzG0 著作权归作者所有。请勿转载和采集!