⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fulladder.c

📁 基于ANdroid平台的高欢堂书籍的对应源代码 非常有用
💻 C
字号:
/*    FullAdder.c   */
#include "FullAdder.h"
static void init(FullAdder* t) {
    t->ha1 = (HalfAdder*)HalfAdderNew();   
    t->ha2 = (HalfAdder*)HalfAdderNew();  }

static void set_ab(FullAdder *cthis, int a, int b) {
    cthis->ha1->set_digits(cthis->ha1, a, b);
    cthis->ha1->run(cthis->ha1);
    cthis->c1 = cthis->ha1->get_carry(cthis->ha1);
    cthis->s1 = cthis->ha1->get_sum(cthis->ha1);
}

static int set_carry_in(FullAdder *cthis, int ci) {
    cthis->ha2->set_digits(cthis->ha2, cthis->s1, ci);
    cthis->ha2->run(cthis->ha2);
    int c2 = cthis->ha2->get_carry(cthis->ha2);
    cthis->sum = cthis->ha2->get_sum(cthis->ha2);
    int carry_out = cthis->c1 | c2;
    return carry_out;
}
static int get_sum(FullAdder* cthis)
     {  return cthis->sum; }

CTOR(FullAdder)
    FUNCTION_SETTING(init, init)
    FUNCTION_SETTING(set_ab, set_ab)
    FUNCTION_SETTING(set_carry_in, set_carry_in)
    FUNCTION_SETTING(get_sum, get_sum)
END_CTOR

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -