#include <stdio.h> #include <stdint.h> void add_with_carry(uint8_t a, uint8_t b, uint8_t* result, uint8_t* carry) { *result=*carry=0; for(int i=0;i<8;i++){ uint8_t s=(a>>i&1)+(b>>i&1)+*carry; if(s==1 || s==3){ *result|=1<<i; *carry= s==1 ? 0 : 1; } else{ *carry= s ? 1 : 0; } } } 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; }
Test Cases
Test Results
Input
100 50
Expected Output
150 0