NB6_Hazards/Hazard/Hazard/PrimImplikant.cpp
Jonny007-MKD 7da5e0ff86 Changed int to unsigned int where applicable
Für Indizes und solche Sachen brauchen wir meistens keine Vorzeichen.
Hiermit können wir doppelt so viele (65k statt 32k) PrimImplikanten
verwalten =)
2013-11-14 14:45:25 +01:00

42 lines
876 B
C++

#include "stdafx.h"
#include <string>
#include <vector>
#include "PrimImplikant.h"
using namespace std;
bool PrimImplikant::valueAt(unsigned int pos) {
for (vector<unsigned int>::iterator i = implikanten.begin(); i < implikanten.end(); ++i)
if (*i == pos)
return true;
return false;
}
void PrimImplikant::parser(string input) { // Analyser
unsigned int implikant = 0;
string text0 = "";
string text1 = "";
for (unsigned int i = 0; i < input.size(); i++)
{
char c = input[i];
if (c == 'x' || c == 'X')
{
text0 = input;
text1 = input;
text0[i] = '0';
text1[i] = '1';
parser(text0);
parser(text1);
return;
}
if (c != '0' && c != '1')
{
printf("**** FATAL ERROR **** %s is not binary\n", input);
return;
}
implikant <<= 1; // *2
implikant += (unsigned int)c - (unsigned int)'0';
}
implikanten.push_back(implikant);
}