Hi,
ich brächte mal hilfe und zwar habe ich seit 5 wochen in der schule Programmieren. Dazu hat mir mein Lehrer die Aufgabe erstellt eine Dezimal Zahl als erstes in Binär zu übersetzen und dann die Parrität zu vergleichen. Mein Lehrer erklärt leider nicht viel deswegen verstehe ich die erste For Schleife nicht ganz. Wenn mir die Jemand erklären kann wäre das gut. Dazu funktioniert das so noch nicht da wenn ich 445 als zahl eingebe die zahl als 32 bit wie folgt ausgegeben wird:
0000 0000 0000 0000 0000 0001 1011 1101 = Zahl in 32bit binär
Even Even Even Even = Parität
Aber es müsste raus kommen in der Parität spalte
Even Even Odd Even
Dies wäre soweit mein Lösungsansatz.
#include <iostream>
#include <cstdlib>
int i;
int a;
int bits[sizeof(int)*8];
unsigned int unum;
int num;
int main (int nargs, char **args) {
num=atoi(args[1]);
unum = (unsigned int)num;
for(int i=0; i<sizeof(int)*8; i++) {
bits[i]=unum % 2;
unum /=2;
}
if(bits[1,2,3,4] == bits[5,6,7,8]) {
std::cout << "Even\n";
} else {
std::cout << "Odd\n";
}
if(bits[9,10,11,12] == bits[13,14,15,16]) {
std::cout << "Even\n";
} else {
std::cout << "Odd\n";
}
if(bits[17,18,19,20] == bits [21,22,23,24]) {
std::cout << "Even\n";
} else {
std::cout << "Odd\n";
}
if(bits[25,26,27,28] == bits[29,30,31,32]) {
std::cout << "Even\n";
} else {
std::cout << "Odd\n";
}
return 0;
}