Dine integers indeholder jo rent faktisk binære tal. Du kan meget nemt få dem skrevet ud binært nemlig vha.
cprintf(\"Den binære værdi er = %s\", itoa(BinVar, 2); // <stdlib.h>
mht. assignment kan du enten benytte dig af en funktion svarende til den lucifer beskriver ovenfor, evt. overloaded som nedenfor, eller du kan \"oversætte\" dem til Hex-værdier (dvs. 4 bit ad gangen), f.eks. 10111001 => 1011 = 8+2+1 = B, 1001 = 8+1 = 9 => 0xB9;
int setBin(ulong value) { int tmp = 0; while (value > 1) { tmp = tmp*2 + value % 10; value /= 10; } return tmp; } int setBin(char *Value) { return setBin(atol(Value)); }
Hermed kan du initialize din binary variabel vha. setBin(10001001) eller setBin(\"10001110\") som du har lyst. Husk på at int i 16-bit DOS har en max. værdi på 65535.
Øh - det kommer lige an på hvilket format dine binære data er i. I standard-biblioteket findes der en template ved navn bitset<>, hvor eneste template-parameter er antal bits. Det virker ganske fint. Den er defineret i headeren bitset (uden .h!)
Ellers er det i C++ hip som hap, om du opfatter en variabel som en bit-sekvens eller en unsigned long.
moykal
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.