Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    convertire char da esadecimale a binario

    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;
    }
    Ultima modifica di LeleFT; 06-11-2014 a 14:27 Motivo: Rimossa formattazione e aggiunti tag CODE

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    D: non si capisce nulla D:
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,472
    Condordo ... e poi

    i=o

    lettera o ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    codice:
    #include <iostream>
    #include <cctype>
    
    using namespace std;
    
    void halfchar_bin(char n, char out[4]) {
      for(int i = 0; i < 4; ++i) {
        out[3-i] = ((n>>i)&1) + '0';
      }
    }
    
    char esa_halfchar(char n) {
      if(isdigit(n)) {
        return n-'0';
      } else if(isxdigit(n)) {
        return tolower(n)-'a'+10;
      }
      return -1;
    }
    
    void esa_bin(char n, char out[4]) {
      halfchar_bin(esa_halfchar(n), out);
    }
    
    string esaString_binString(string esa) {
      string out = "";
      char tmp[5];
      tmp[4] = '\0'; //terminatore;
      for(int i = 0; i < esa.length(); ++i) {
        esa_bin(esa[i], tmp);
        out += tmp + string(" ");
      }
      return out;
    }
    
    int main(void) {
      string esa = "7A";
      cout << esaString_binString(esa) << endl;
      return 0;
    }
    Non so se è quello che intendi, ma trasforma una stringa del tipo
    codice:
    7A
    in
    codice:
    0111 1010
    .
    Puoi facilmente rimuovere lo spazio. Nel caso siano presentate cifre che non appartengono a [0-9A-Fa-f] l'output è scorretto, puoi correggertelo per conto tuo se desideri.
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  5. #5
    Sisi grazie mille

  6. #6
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Quote Originariamente inviata da valiyev96 Visualizza il messaggio
    Sisi grazie mille
    Hai capito come funziona?
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.