通过在bit_array上进行位运算从而实现加法 该函数输入两个8位的bit_array 返回一个8位的bit_array这个8位的bit_array是输入的两个8位的bit_array之和 提示: - 你可以使用get_bit_8ba idx从给定bit_array中取出第idx位 - 你可以使用set_bit_8ba idx bit将ba中第idx位配置为bit值 注意: b
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/cNVY 著作权归作者所有。请勿转载和采集!