Newsgroup: it.comp.lang.c
Titolo: bit in un file

Come si puo' gestire un file di bit in C? Esistono funzioni per
leggere/ scrivere/ spostarsi di un numero arbitrario di bit?
Ho trovato un riferimento a file binari e file di testo, ma tutte le
funzioni che trovo suppongono di leggere byte.
Se applicassi tali funzioni ad un file di bit con una lunghezza per
esempio di 7,5 byte, come si comporterebbero ad ora di leggere
l'ultimo mezzo byte?
Ringrazio fin da adesso quanti risponderanno.
   Ciao,
      Giovanni. 
Giovanni Neglia
gne...@ZZZtiscalinet.it
per rispondere rimuovere ZZZ dall'indirizzo

l'ultimo mezzo byte?
Forse vuoi dire "7,5 bit". I file non possono avere una lunghezza
tale. Al limite di 8. Si va di 8 in 8 bit (cioe' di byte in byte).
Non ci sono funzioni per leggere bit, ma ci sono quelle per leggere
byte e quindi puoi bufferizzare la lettura dei bit.
--
-- Andrea Laforgia (UIN 87230455) --------------------------------------
Non scrivetemi in privato, per cortesia, se non richiesto espressamente.
No replies in private e-mail, please, unless explicitly requested.
------------------------------------------------------------------------

 tale. Al limite di 8. Si va di 8 in 8 bit (cioe' di byte in byte).
Non e' detto che il byte sia di 8 bit... :-P
--
 Ciao, Bianco.
 Reply to 
luca....@tiscalinet.it

Non e' detto che il byte sia di 8 bit... :-P
In generale no, ma e' evidente che il nostro amico si riferisce ad un
sistema in cui il byte e' di 8 bit, visto che, in relazione ai 7,5
bit, parla dell'ultimo "mezzo" byte.
--
-- Andrea Laforgia (UIN 87230455) ------------------------
Non scrivetemi in privato, se non richiesto espressamente.
No replies in private e-mail, unless explicitly requested.
----------------------------------------------------------

-- Andrea Laforgia (UIN 87230455) --------------------------------------
   Ciao,


di bit.
Il tuo assistente avrebbe bisogno di un bel corso di linguaggio C.
Non e' possibile leggere un numero arbitrario di bit, perche' l'unita'
minima di informazione leggibile e scrivibile, fino ad oggi, e' il
byte. La lettura dei bit e' simulabile con la lettura di un intero
byte e con la estrapolazione da esso di 1 o piu' bit alla volta.
--
Andrea Laforgia (UIN 87230455)
----------------------------------------------------------
Non scrivetemi per e-mail, se non richiesto espressamente.
No replies in private e-mail, unless explicitly requested.
----------------------------------------------------------

 di bit.
Puoi creare delle funzioni che ti facciano vedere dal punto di vista
logico come se leggessi un bit alla volta ma la lettura fisica dal file
sarà, ovviamente, di un byte o più alla volta.
EMG

> Non e' detto che il byte sia di 8 bit... :-P
E su che sistemi non è da 8 bit?
ciao

E su che sistemi non è da 8 bit?
Su molti sistemi, ma non so citarteli.
In ogni caso, lo standard, non puo' assumere che il byte sia
forzatamente di 8 bit.

 writes:

se intendi per byte "la minima unita' di memoria indirizzabile", ne ho
visti da 6 e da 9 bits (su macchine con parole da 24 e 36 bits); un
esempio di bytes da 6 bits e' l'ibm della serie stretch, oppure il dec
pdp-6.  il vecchio caro pdp-10 aveva 'bytes' (sempre in questo senso)
di ampiezza variabile da 1 a 36 bits, e l'address space era di 1
megabyte di bytes da 9 bits cadauno.
nel techspeak del C per "byte" si intende sizeof(char), che lo
standard definisce essere 1; esistono processori (dsp) dove un "char"
occupa 32 bits, con sizeof(char) = sizeof(int) = sizeof(long).
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it

E su che sistemi non è da 8 bit?
Io per lavoro ho a che fare anche con un DSP della
Texas che usiamo per le schede di controllo assi in
cui l'unita' minima di accesso alla memoria e' 16 bit
(e i char sono da 16 bit).
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

 writes:

se intendi per byte "la minima unita' di memoria indirizzabile", ne ho
visti da 6 e da 9 bits (su macchine con parole da 24 e 36 bits); un
esempio di bytes da 6 bits e' l'ibm della serie stretch, oppure il dec
pdp-6.  il vecchio caro pdp-10 aveva 'bytes' (sempre in questo senso)
di ampiezza variabile da 1 a 36 bits, e l'address space era di 1
megabyte di bytes da 9 bits cadauno.
nel techspeak del C per "byte" si intende la memoria necessaria per un
"char": lo standard ansi/iso definisce sizeof(char)=1, e vincola
l'implementazione ad usare per un "char" _almeno_ 8 bits; esistono
pero' processori (dsp) dove un "char" occupa 32 bits, con sizeof(char)
