All submissions

Carry Flag in 8-bit Addition

Code

#include <stdio.h>
#include <stdint.h>

void add_with_carry(uint8_t a, uint8_t b, uint8_t* result, uint8_t* carry) {
    // Your logic here
    // uint8_t Cin = 0;
    // uint8_t Cout = 0;
    // uint8_t Abit = 0;
    // uint8_t Bbit = 0;
    // uint8_t Rbit = 0;
    // uint8_t Res = 0;
    // for(int i=0; i<8; i++)
    // {
    //     Abit = (a>>i) & 0x01;
    //     Bbit = (b>>i) & 0x01;
    //     Rbit = (Abit^Bbit)^Cin;
    //     Cout = (Abit&Bbit)|(Cin&(Abit^Bbit));
    //     Res = Res | (Rbit<<i);
    //     Cin = Cout;
    // }
    *result = a+b;
    *carry = (*result < a);
}

int main() {
    uint8_t a, b, result, carry;
    scanf("%hhu %hhu", &a, &b);

    add_with_carry(a, b, &result, &carry);

    printf("%u ", result);
    printf("%u", carry);
    return 0;
}

Solving Approach

 

 

 

Loading...

Input

100 50

Expected Output

150 0