|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jun 2008
Messaggi: 384
|
[C++] dichiarare una variabile binaria
In C++ posso assegnare a una variabile un valore binario?
Io leggo tipi di dati: short,int,long,char,double,bool. Ma non trovo il tipo di dato binario. Se io ad esempio volessi che la variabile A sia = 00100001 cosa dovrei usare? Esiste il tipo di dato binario in C++ ? Ora io voglio scrivere un elenco di byte, e poi eseguire l'AND tra loro. Io ho trovato il tipo _int64 ma si riferisce a un'intero decimale di 64bit. Ma allora dovrei prima di scrivere il programma convertire il binario in decimale, poi fare le operazioni booleane che m'interessano e poi convertile di nuovo in binario e il risultato quando lo uso convertirlo ancora in quel che mi serve? Io vorrei allocare dei dati di tipo binario e eseguire operazioni booleane tra loro. Il risultato binario: o manipolarlo con altre operazioni o convertirlo per il seguito del programma. Ultima modifica di Albitexm : 09-03-2010 alle 23:03. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
Beh in C/C++ tutti i tipi sono implicitamente tipi binari... quindi puoi trattarli tutti come sequenze di bits lunghe sizeof( tipo ) * 8.
Un elenco di bytes credo sia meglio realizzarlo con un array di char. Poi, dato ogni singolo byte/char, puoi settare i bits individuali con gli operatori binari. |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Nov 2000
Città: MILANO
Messaggi: 2662
|
usa un unsigned char e lavora in esadecimale.
Codice:
unsigned char valueArray[2] = {0x21, 0x01}; unsigned char finalValue = valueArray[0]; for (unsigned int i = 1; i < 2; i++) { finalValue &= valueArray[i]; } |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
|
|
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
Quote:
![]() ![]() per le operazioni booleane bit a bit usa gli operatori bitwise: &, |, ^, ~ |
|
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Oct 2006
Città: Roma
Messaggi: 1383
|
Quote:
oppure A = 0x21; |
|
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Jun 2008
Messaggi: 384
|
Quote:
if condizione1 vera & condizione2 vera then .. mentre noi parliamo di eseguire la AND "matematica" tra due variabili. Il simbolo è sempre & ? |
|
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Jun 2008
Messaggi: 384
|
Grazie per l'indicazione. Ho visto sull'Help del compilatore le decine di voci relative a bitarray, bitset array ecc.. Sono giunto alla conclusione che è più semplice lavorare con degli array di tipo char (come sostiene Tommo) anche se ovviamente la resa sarà diversa. Si avrà una maggiore semplicità di stesura del codice a scapito delle prestazioni.
|
![]() |
![]() |
![]() |
#9 | |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
Quote:
|
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:05.