Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    [c] Byte

    Ciao a tutti,
    ho come al solito un problema...
    Avendo una variabile di tipo BYTE come faccio a conoscere il valore del bit i-esimo con i compreso tra 0 e 7???
    Grazie a tutti per le risposta.
    Saluti
    Francesco

  2. #2
    BYTE non è un tipo del linguaggio C e nemmeno del C++.

  3. #3
    Ma è definito in windows.h

  4. #4

    Re: [c] Byte

    Originariamente inviato da francescoprogc
    Ciao a tutti,
    ho come al solito un problema...
    Avendo una variabile di tipo BYTE come faccio a conoscere il valore del bit i-esimo con i compreso tra 0 e 7???
    Grazie a tutti per le risposta.
    Saluti
    Francesco
    codice:
    	BYTE byte;
    	short bitnum;
    	for( byte=0; byte<20; byte++)
    	{
    		printf("\n%03d = ", byte);
    		for( bitnum=7; bitnum>=0; bitnum--)
    			printf("%d ", (byte>>bitnum) & 1);
    	}
    Oppure puoi crearti questa macro
    codice:
    #define BIT(a,b) (a>>b)&1
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  5. #5
    Grazie mille sei stato gentilissimo...
    Se volessi fare il contrario invece come dovrei fare????
    Ovvero partire da otto bit e settare il valore di un BYTE????

  6. #6
    Moderatore di Sicurezza informatica e virus L'avatar di Habanero
    Registrato dal
    Jun 2001
    Messaggi
    9,782
    codice:
    #define SETBIT(a,b)  a|(1<<b)
    Leggi il REGOLAMENTO!

    E' molto complicato, un mucchio di input e output, una quantità di informazioni, un mucchio di elementi da considerare, ho una quantità di elementi da tener presente...
    Drugo

  7. #7
    Grazie mille.
    Scusa habanero ma leggi il regolamento è rivolto a me????
    Se si molto probabilmente ho sbagliato in qualcosa....
    Cmq ti ringrazio....

  8. #8

  9. #9
    Può essere utile anche la reset.

    codice:
    #define SETBIT(a,b)   (a|(1<<b))
    #define RESETBIT(a,b) ((a|(1<<b))^(1<<b))
    01010011 01100001 01101101 01110101 01100101 01101100 01100101 01011111 00110111 00110000
    All errors are undocumented features waiting to be discovered.

  10. #10
    BYTE Buffer;
    Buffer=8;
    for(i=0;i<8;i++)
    {
    printf("BIT%d=%d \n",i,BIT(Buffer,i));
    }
    for(i=0;i<8;i++)
    {
    SETBIT(Buffer,i);
    }
    for(i=0;i<8;i++)
    {
    printf("BIT%d=%d \n",i,BIT(Buffer,i));
    }
    for(i=0;i<8;i++)
    {
    RESETBIT(Buffer,i);
    }
    for(i=0;i<8;i++)
    {
    printf("BIT%d=%d \n",i,BIT(Buffer,i));
    }
    Come mai la stampa effettuata nei vari cicli for mi restituisce sempre lo stesso risultato????
    I vari BIT costituenti il buffer non vengono settati o resettati???
    Grazie a tutti

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 © 2025 vBulletin Solutions, Inc. All rights reserved.