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

    Operatori Bit a bit [C]

    Salve a tutti, sto studiando per l'esame di programmazione strutturata, in parole povere il linguaggio C. Mi ritrovo a fare un esercizio che chiede questo "Scrivere un programma che pone 8 domande
    a cui si puo rispondere solo SI o NO.
    Il risultato delle 8 risposte deve essere messo
    nei singoli bit in una sola variabile di tipo char (1 byte).
    Usare gli operatori sui bit per leggere e scrivere
    i singoli bit." Ora in primis non capisco esattamente cosa intende quando mi dice di inserire il risultato delle 8 risposte in una sola variabile di un byte. Comunque sia io ho il programma già fatto e, ho tentato di studiarlo cercando di capirlo. Ovviamente non lo ho capito e ho studiato da alcune guide online gli operatori bit a bit , capendo veramente poco, sia della loro utilità e sia di come agiscono. Qualcuno saprebbe darmi una mano?? Grazie mille in anticipo...

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,313
    Riporta il codice, oppure riporta la tua proposta di soluzione.

    Qui hai solo enunciato un problema dicendo che non ne capisci i termini, ma questi si approfondiscono con la documentazione o con il professore che ti ha assegnato l'esercizio, non qui.

    Leggi il Regolamento.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Questo link fa per te, trovi tutto il necessario.
    http://www.cprogramming.com/tutorial...operators.html

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2011
    Messaggi
    156
    si potrebbe fare un controllo con while per verificare che la risposta (memorizzata su una stringa) sia o si o no(non va avanti finché la risposta non è una delle due).
    dunque se la risposta è si si fa
    {carattere= carattere | 1;
    carattere=carattere << 1;}

    altrimenti se la risposta è no si fa
    {carattere= carattere | 0;
    carattere=caratter << 1;}

    Ho iniziato il C oggi, quindi in caso sto dicendo bestialità ditemelo

  5. #5
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Un byte può memorizzare 8 bit, tu invece di usare un char per una sola risposta,lo puoi utilizzare 8 volte.
    L' operatore & esegue un and bit a bit tra due valori, con questo operatore risulta facile gestire la cosa.
    Crei una variabile char num, gli dai come valore iniziale 0.
    Per ogni risposta vera, aggiungi a tale variabile 2^(i-1), dove i è il numero della domanda.Ad esempio se la prima domanda è vera gli aggiungi 1, se la seconda è vera gli aggiungi 2, se la terza è vera gli aggiungi 4, e così via....
    Poi per leggere la falsità o verità delle domande fai l' and bit a bit, ad esempio se vuoi controllare se la prima domanda sia vera o falsa, fai il controllo:
    codice:
    if(num&1)
        printf("Vero");
    else 
        printf("Falso");
    E così via per le altre domande.

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.