#include <stdio.h> #define ARRAYSIZE 16 void binaryadd(int *array1, int *array2, int *array3) { int carry = 0; int i; for (i = ARRAYSIZE - 1; i >= 0; --i) { array3[i + 1] = array1[i] ^ array2[i] ^ carry; carry = ((array1[i] ^ array2[i]) & carry) | (array1[i] & array2[i]); } array3[i + 1] = carry; } void printarray(int *array, int size) { int i; for (i = 0; i < size; ++i) printf("%d ", array[i]); printf("\\n"); } main() { int i; int array1[ARRAYSIZE] = {0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0}; int array2[ARRAYSIZE] = {0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0}; int array3[ARRAYSIZE+1] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; binaryadd(array1, array2, array3); printf(" "); printarray(array1, ARRAYSIZE); printf(" "); printarray(array2, ARRAYSIZE); printarray(array3, ARRAYSIZE+1); }
二进制加法
精选 转载上一篇:一个简单的随机函数
下一篇:一个DBA菜鸟的工作心得
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
定点小数和定点整数
定点小数和定点整数1.定点小数2.定点整数
计算机组成原理 其他 -
加法器
加法器1.一位全加器2.串行加法器3.并行加法器4.ALU芯片的组织
计算机组成原理 加法器 并行加法器 串行加法器 其他