#include #include "int20.h" struct int20 create20(char val[]) { // int20 deklarieren struct int20 num; // Länge des übergebenen Strings herausfinden. Maximal 20 int length = 0; for (; length < 20 && val[length] != '\0'; length++); // num.digits mit den übergebenen Ziffern auffüllen, bzw mit '0' for (int i = 0; i < 20; i++) { if (i < 20 - length - 1) { num.digits[i] = 0; } else { num.digits[i] = val[i - 20 + length]; } } return num; } struct int20 add20(struct int20 a, struct int20 b) { struct int20 c; int carry = 0; for (int i = 19; i >= 0; i--) { char cd = a.digits[i] + b.digits[i] - '0' + carry; carry = 0; if (cd > '9') { cd -= 10; carry = 1; } c.digits[i] = cd; } if (carry != 0) { printf("INT20 OVERFLOW\n"); } return c; } void print20(struct int20 num) { int i = 0; for (; i < 20 && num.digits[i] == '0'; i++); if (i >= 20) printf("0"); for (; i < 20; i++) { printf("%c", num.digits[i]); } }