Questa e la parte che ho gia fatto, non riesco a converire da esa a bin, qualcuno mi puo dare una mano?
codice:
#include <cstdlib>
#include <iostream>
using namespace std;
void visbyte(char ch);
char esatobyte(char cifra1, char cifra0);
int main(int argc, char *argv[])
{
char frame[73]; // non uso l'elemento zero
string MAC_O, MAC_D, msg;
int i;
//INPUT
MAC_O = "02-60-8C-E9-8B-01";
MAC_D = "74-E5-43-19-30-CD";
msg = "Ciao io sono il payload";
// preambolo
for(i=1; i<=7; i++){
frame[i] = 170;
}
// SFD 10101011
frame[8] = 171;
// MAC Destinatario
for(i=0; i<=15; i+=3){
frame[9+(i/3)] = esatobyte(MAC_O[i], MAC_O[i+1]);
}
// ...........
// OUTPUT
for(i=1; i<=8; i++){
visbyte(frame[i]);
cout << " ";
}
system("PAUSE");
return EXIT_SUCCESS;
}
// trasforma e visualizza ch in 8 bit
void visbyte(char ch) {
int bin[8];
for (int i=0;i<8;i++) {
bin[i]=((ch>>i)&1);
}
for (int i=0;i<8;i++) {
cout<<bin[7-i];
}
}
char esatobyte(char cifra1, char cifra0) {
char bin;
if (cifra0 >= '0' && cifra0 <= '9') {
bin = cifra0 - 48;
// printf("bin = %c %d:\n", cifra0, cifra0);
} else {
bin = cifra0 - 55;
}
printf("bin = %d:", bin);
// ...
return bin;
}