From 37a116cf63db8fe4df8712ae321df50318f70a37 Mon Sep 17 00:00:00 2001 From: Johannes Theiner Date: Mon, 9 Apr 2018 21:19:20 +0200 Subject: [PATCH] hey, eine andere Fehlermeldung --- 02_MENT/main_02_MENT.cpp | 144 +++++++++++++++++++-------------------- 1 file changed, 70 insertions(+), 74 deletions(-) diff --git a/02_MENT/main_02_MENT.cpp b/02_MENT/main_02_MENT.cpp index 20b1e73..399fe6b 100644 --- a/02_MENT/main_02_MENT.cpp +++ b/02_MENT/main_02_MENT.cpp @@ -5,29 +5,29 @@ #include "../helpers/println.hpp" -struct PascalString { - int length; // number of chars used - char characters[256]; // chars of some character string +struct PascalString{ + int length; // number of chars used + char characters[256]; // chars of some character string }; char cStringArea[1024]; int hexDigitToInt(char hexDigit) { - int value = 0; +int value = 0; - if (hexDigit > 47 && hexDigit < 58) - value = hexDigit - 48; +if(hexDigit > 47 && hexDigit < 58) + value = hexDigit - 48; - if (hexDigit > 96 && hexDigit < 103) - value = hexDigit - 97 + 10; +if(hexDigit > 96 && hexDigit < 103) + value = hexDigit - 97 + 10; - return value; +return value; } int hexStringToInt(PascalString binaryDigits) { int returnValue = 0; - for (int i = 0; i <= binaryDigits.length; ++i) { + for(int i = 0; i <= binaryDigits.length; ++i) { returnValue += binaryDigits.characters[i]; } @@ -35,7 +35,7 @@ int hexStringToInt(PascalString binaryDigits) { } void printPascalString(PascalString s) { - for (int i = 0; i <= s.length; i++) { + for(int i = 0; i <= s.length; i++) { print(s.characters[i]); } println(""); @@ -45,7 +45,7 @@ PascalString intToDual(int n) { int i = std::to_string(n).length() * 4; PascalString string = {i}; - while (n >= 1) { + while(n >= 1) { string.characters[i] = (n % 2) + '0'; n = n / 2; i--; @@ -54,30 +54,24 @@ PascalString intToDual(int n) { } char intToHexChar(int n) { - if (n > 9) { - switch (n) { - case 10: - return 'A'; - case 11: - return 'B'; - case 12: - return 'C'; - case 13: - return 'D'; - case 14: - return 'E'; - case 15: - return 'F'; - default: - return 'X'; + if(n > 9) { + switch(n) { + case 10: return 'A'; + case 11: return 'B'; + case 12: return 'C'; + case 13: return 'D'; + case 14: return 'E'; + case 15: return 'F'; + default: return 'X'; } - } else return n + '0'; + } + else return n + '0'; } PascalString intToHex(int n) { int i = std::to_string(n).length(); PascalString string = {i}; - while (n >= 1) { + while(n >= 1) { string.characters[i] = intToHexChar(n % 16); n = n / 16; i--; @@ -89,8 +83,9 @@ PascalString intToHex(int n) { PascalString bitwiseDualAnd(PascalString a, PascalString b) { PascalString result = {a.length, '0'}; - for (int i = b.length; i >= 0; --i) { - if (a.length < i) result.characters[i] = a.characters[i]; + for(int i = b.length; i >= 0; --i) { + if(a.length < i) result.characters[i] = a.characters[i]; + println("i: ", i, " ", a.characters[i] & b.characters[i]); result.characters[i] = a.characters[i] & b.characters[i]; } @@ -100,8 +95,9 @@ PascalString bitwiseDualAnd(PascalString a, PascalString b) { PascalString bitwiseHexAnd(PascalString a, PascalString b) { PascalString result = {a.length, '0'}; - for (int i = b.length; i >= 0; --i) { - if (a.length < i) result.characters[i] = a.characters[i]; + for(int i = b.length; i >= 0; --i) { + if(a.length < i) result.characters[i] = a.characters[i]; + println("i: ", i, " ", a.characters[i] & b.characters[i]); result.characters[i] = a.characters[i] & b.characters[i]; } @@ -113,53 +109,53 @@ int to_c_string(PascalString s) { } void line() { - println("==================================="); +println("==================================="); } -int main(int argc, char **argv, char **envp) { +int main(int argc, char** argv, char** envp) { - PascalString s = {3, '1', '0', '0'}; - PascalString s2 = {4, 'f', 'f', 'f', 'f'}; - println(hexStringToInt(s)); - line(); - println(hexStringToInt(s2)); - line(); - println(hexDigitToInt('d')); - line(); - println(hexDigitToInt('9')); - line(); - println(hexDigitToInt('2')); + PascalString s = {3, '1', '0', '0'}; + PascalString s2 = {4, 'f', 'f', 'f', 'f'}; + println(hexStringToInt(s)); + line(); + println(hexStringToInt(s2)); + line(); + println(hexDigitToInt('d')); + line(); + println(hexDigitToInt('9')); + line(); + println(hexDigitToInt('2')); - printPascalString(s2); - line(); + printPascalString(s2); + line(); - int controlRegister = 128; - controlRegister |= 64 + 32; - controlRegister ^= 16; - controlRegister &= 128 + 64; - controlRegister <<= 1; + int controlRegister = 128; + controlRegister |= 64+32; + controlRegister ^=16; + controlRegister &= 128+64; + controlRegister <<= 1; - println(controlRegister); - line(); - println(intToHexChar(6)); - line(); - println(intToHexChar(10)); - line(); - printPascalString(intToDual(4106)); - line(); - printPascalString(intToHex(965)); - line(); - printPascalString(intToHex(1956)); + println(controlRegister); + line(); + println(intToHexChar(6)); + line(); + println(intToHexChar(10)); + line(); + printPascalString(intToDual(4106)); + line(); + printPascalString(intToHex(965)); + line(); + printPascalString(intToHex(1956)); - line(); - printPascalString(bitwiseDualAnd({3, '1', '1', '0'}, {4, '1', '1', '1', '0'})); - line(); - printPascalString(bitwiseDualAnd({3, '1', '1', '1'}, {4, '1', '1', '1', '0'})); - line(); - printPascalString(bitwiseDualAnd({3, '1', '1', '0'}, {4, '1', '1', '1', '1'})); - line(); - printPascalString(bitwiseDualAnd({3, '0', '1', '0'}, {4, '1', '0', '1', '1'})); + line(); + printPascalString(bitwiseDualAnd({3, '1', '1', '0'}, {4, '1', '1', '1', '0'})); + line(); + printPascalString(bitwiseDualAnd({3, '1', '1', '1'}, {4, '1', '1', '1', '0'})); + line(); + printPascalString(bitwiseDualAnd({3, '1', '1', '0'}, {4, '1', '1', '1', '1'})); + line(); + printPascalString(bitwiseDualAnd({3, '0', '1', '0'}, {4, '1', '0', '1', '1'})); - return 0; + return 0; }