View Full Version : [C] mi aiutate a capire un esercizio?
Creare una function che estrae i bit da una variabile intera (char, short o long) e calcola il relativo valore intero. Confronta poi il risultato con il valore della corrispondente variabile C signed ed unsigned
io non riesco a capire il senso di questo esercizio :mbe: :help: :help:
cioè...in input inserisco un intero char, short o long e fino a qui ok...per esempio inserisco 10.
La function mi deve praticamente dare la conversione in binario, ma poi che significa 'calcola il relativo valore intero?'...non è proprio 10???
La seconda parte poi non l'ho capita proprio.
:doh:
Naufr4g0
02-10-2007, 23:43
Tutti i dati vengono memorizzati in locazioni di memoria sotto forma di bit.
A seconda della tipologia del dato questi prendono più o meno spazio in memoria, e questo spazio è misurato in byte (=8 bit).
gneralmente:
CHAR = 1 byte (=8 bit)
INT = 4 byte (=32 bit)
LONG = 8 Byte (=64 bit)
Con 8 bit puoi esprimere 2^8=256 combinazioni, e ad ogni combinazione corrisponde un carattere, quando è un dato di tipo Char.
Con 4 byte puoi esprimere 2^32 combinazioni e quindi 2^32 numeri diversi.
Con 8 byte le combinazioni sono 2^64 usate dai long int.
La differenza fra signed e unsigned, è che nei signed il primo bit che compono il dato serve a indicare il segno (1 = negativo, 0 = positivo), tutti gli altri invece indicano il numero. Negli unsigned tutti i bit sono per il numero che deve essere necessariamente intero.
ti ringrazio per la spiegazione sei stato gentilissimo, il problema non è questo però perché queste cose le so.
E' che non riesco a capire il senso dell'esercizio (input/output/ecc..)
:mbe:
Naufr4g0
03-10-2007, 10:10
ti ringrazio per la spiegazione sei stato gentilissimo, il problema non è questo però perché queste cose le so.
E' che non riesco a capire il senso dell'esercizio (input/output/ecc..)
:mbe:
Beh considerala allora un ripasso... ;)
Creare una function che estrae i bit da una variabile intera (char, short o long) e calcola il relativo valore intero. Confronta poi il risultato con il valore della corrispondente variabile C signed ed unsigned
Effettivamente hai ragione.
1) Che senso ha creare una function a cui passi un valore intero e ti restituisce il valore intero stesso? ( numero intero ---> 00101011 ---> numero intero)
2) la variabile char non è di tipo intero!! :/
3) se inserisci una variabile long int non puoi ottenere un int se è più grande di un certo valore. Quindi la funzione non puo' operare la conversione in tutti i casi.
4) Nella seconda parte posso capire che tu magari passi alla funzione una variabile int signed e ti restituisce una unsigned, che a parità di bit restituisce un valore diverso. Ci vedo solo questa utilità.
Il problema è senz'altro capire questo input come avviene e cos'è?
Ma dove te l'hanno assegnato questo esercizio? Università? Ingegneria informatica?
Guarda che spesso i proff. nei testi degli esercizi non si sanno mai esprimere.
Si devono sempre "interpretare"!! E poi ti dicono che "si capiva"...
Ma dove te l'hanno assegnato questo esercizio? Università? Ingegneria informatica?
Guarda che spesso i proff. nei testi degli esercizi non si sanno mai esprimere.
Si devono sempre "interpretare"!! E poi ti dicono che "si capiva"...
bravo hai fatto centro.
E' un esercizio assegnato all'università.
Ho spesso la sensazione che gli esercizi vengano stesi diciamo 'a caso' senza preoccuparsi molto della logica....il fatto che anche tu ne trovi poca mi consola perché altrimenti voleva dire che ero io non saper fare queste cose.
Non ho idea di cosa fare...
Naufr4g0
03-10-2007, 11:30
bravo hai fatto centro.
E' un esercizio assegnato all'università.
Ho spesso la sensazione che gli esercizi vengano stesi diciamo 'a caso' senza preoccuparsi molto della logica....il fatto che anche tu ne trovi poca mi consola perché altrimenti voleva dire che ero io non saper fare queste cose.
Non ho idea di cosa fare...
Credo che ti convenga parlare con il prof. :)
Credo che ti convenga parlare con il prof. :)
ecco a volte questo è più difficile dell'esercizio :D
) Nella seconda parte posso capire che tu magari passi alla funzione una variabile int signed e ti restituisce una unsigned, che a parità di bit restituisce un valore diverso. Ci vedo solo questa utilità.
ad ogni modo se volessi inserire un unsigned nella funzione come farebbe a restituirmi un signed?
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.