ho bisogno di sapere il numero massimo che riesco a contenere in 128kb, ho provato in vari modi ma non riesco a calcolarmelo..sapete darmi una mano???
ho bisogno di sapere il numero massimo che riesco a contenere in 128kb, ho provato in vari modi ma non riesco a calcolarmelo..sapete darmi una mano???
Bhè, dipende da come è rappresentato il numero, considerando numeri binari interi senza segno:
(2 elevato alla N) - 1;
se N è il numero di bits; nel tuo caso se con Kb intendi KiloBits:
N = 128 * 1024 = 131072
se intendi KiloBytes
N = 128 * 1024 * 8 = 1048576
un numero enorme in entrambi i casi!
n è il numero di byte,
fino a lì ci ero arrivato anche io, ma considerando ciò poni tutti i bit a 0 eccetto quello più significativo a 1, invece io ho bisogno di sapere quanto vale il mio numero se tutti gli 8 bit della mia variabile sono a 1...
Non capisco cosa intendi...perke parli di 8 bits? Comunque se poni tutti gli N bits a 1 ottieni il numeroOriginariamente inviato da nordavind
n è il numero di byte,
fino a lì ci ero arrivato anche io, ma considerando ciò poni tutti i bit a 0 eccetto quello più significativo a 1, invece io ho bisogno di sapere quanto vale il mio numero se tutti gli 8 bit della mia variabile sono a 1...
(2 elevato alla N) - 1
poniamo per esempio un singolo byte:
10000000
questo vale 256
ma se io il singolo byte lo ho così:
11111111
varrà 256+128+64+32+16+8+4+2+1
quindi il valore massimo contenibile non è 2^8
ma 2^8 + 2^7 etc...
immagina di trasporre la cosa su 128KByte cioè 128 000 byte cioè
1.024.000 bit
facendo 2^1024000 non ottieni il numero massimo contenibile in quello spazio di memoria ma ottieni solo il numero contenuto se hai l'ultimo bit a 1 e tutto il resto a 0...
quindi io ho bisogno di sapere quanto viene
2^1024000 + 2^1023999 + 2^1023998 .......fino a 2^0
VVoVe: VVoVe: VVoVe:
No, sbagli a fare il conteggio...innanzitutto è risaputo che con un byte rappresenti 256 valori, da zero a 255, il che dovrebbe immediatamente farti capire che qlcosa non va nel tuo ragionamento.
Il motivo del tuo errore sta nel fatto che se hai 8 bits, allora devi sommare:
2^7 + 2^6 + 2^5 + 2^4 + 2^3 + 2^2 + 2^1 + 2^0 ______(non devi partire da 2^8 !!!)
ovvero se hai N bits devi sommare le prime N potenze di 2, da 2^(N-1) fino a 2^0; la somma delle prime N potenze di due vale 2^N - 1, come ti ho detto già nei precedenti post,
si ma il numero 2^1024000 + 2^1023999 + 2^1023998 .......fino a 2^0poniamo per esempio un singolo byte:
10000000
questo vale 256
ma se io il singolo byte lo ho così:
11111111
varrà 256+128+64+32+16+8+4+2+1
quindi il valore massimo contenibile non è 2^8
ma 2^8 + 2^7 etc...
immagina di trasporre la cosa su 128KByte cioè 128 000 byte cioè
1.024.000 bit
facendo 2^1024000 non ottieni il numero massimo contenibile in quello spazio di memoria ma ottieni solo il numero contenuto se hai l'ultimo bit a 1 e tutto il resto a 0...
quindi io ho bisogno di sapere quanto viene
2^1024000 + 2^1023999 + 2^1023998 .......fino a 2^0
non è che il numero 2^1024001 - 1,capito?Prova a farlo su un numero di bit minore ade esempio 8.Se tu devi calcolare 11111111 cioè 2^7 +..+ 2^0 non hai che da andare su 9 bit,calcolarti 2^8 (cioè 100000000) e sottrarre 1.
Il centro dell'attenzione non è sempre un buon posto in cui trovarsi
Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)