Avatar billede kjole Nybegynder
21. oktober 2004 - 13:49 Der er 7 kommentarer og
1 løsning

Opdeling af byte til bit

Hejsa jeg har prøvet følgende med får fejl:

error C2440: 'initializing' : cannot convert from 'int *' to 'int'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast
warning C4018: '<' : signed/unsigned mismatch
subscript requires array or pointer type
syntax error : missing ';' before '{'
syntax error : missing ';' before '}'
subscript requires array or pointer type
syntax error : missing ';' before 'string'

int main()
{
    const char* byte = "00000000";
    int bit = new int[8];
    for(int i=0; i<strlen(byte); i++)
    {
        bit[i] = byte{i};
        cout << bit[i]"\n";
    }
   
    system("PAUSE");
}
Avatar billede arne_v Ekspert
21. oktober 2004 - 13:56 #1
unsigned char val = 0x00;
int bits[8];
for(int i=0;i<8;i++)
{
  bits[i] = (val >> (7-i)) & 1;
}
Avatar billede kjole Nybegynder
21. oktober 2004 - 13:58 #2
Vil du forklare hvad du gør
og hvis det virker send det som svar:-)
Avatar billede arne_v Ekspert
21. oktober 2004 - 14:01 #3
unsigned char er en byte
0x00 er en konstan i hexadecimal
int bits[8] erklærer et array med 8 elementer
val >> (7-i) skifter val 7-i positioner mod højre
& 1 tager kun den laveste bit (og det er efter skift)
Avatar billede arne_v Ekspert
21. oktober 2004 - 14:01 #4
og et svar
Avatar billede kjole Nybegynder
21. oktober 2004 - 14:05 #5
0x00 er en konstan i hexadecimal

Her kunne jeg lige så godt taste et tal mellem 0-255 ind ikke?

val >> (7-i) skifter val 7-i positioner mod højre
Kan du forklare den helt fra bunden?

& 1 tager kun den laveste bit (og det er efter skift)

Hvad er grunden til denne bruges?
Avatar billede kjole Nybegynder
21. oktober 2004 - 14:05 #6
Skal nok accepterer men vil gerne lære lidt også.
Avatar billede arne_v Ekspert
21. oktober 2004 - 14:58 #7
Ja. 0x00-0xFF er det samme som 0-255.

Hvis i er 0 skifter vi 7 pladser mod højre, hvis i er 7 skifter vi ingen pladser
mod højre.

binært 10000000 >> 7 er binært 00000001
binært 00000001 >> 0 er binært 00000001

Det vi gør at vi shifter den bit vi vil bruge ned som laveste bit og så fjerner
alle øvrige bits med & 1
Avatar billede arne_v Ekspert
06. november 2004 - 17:56 #8
OK ?
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester





White paper
Tidsbegrænset kampagne: Overvejer du at udskifte eller tilføje printere i din forretning? Vi kan tilbyde én eller flere maskiner gratis