Quindi è stata una scelta piuttosto arbitraria, mi sembra di capire.
Però non è singolare il fatto che salvo rare eccezioni sono stati scelti sistemi a 4, 8, 16, 32 e 64 bit, ossia tutte potenze di 2?
Quindi è stata una scelta piuttosto arbitraria, mi sembra di capire.
Però non è singolare il fatto che salvo rare eccezioni sono stati scelti sistemi a 4, 8, 16, 32 e 64 bit, ossia tutte potenze di 2?
Non fare confusione... i bit che compongono un byte sono una cosa, la dimensione della word nativa (e dei puntatori) è un'altra. Il fatto che i tipi di dati superiori al byte siano multipli di 8 bit comunque è normale, se un processore consente di indicizzare la memoria per byte di 8 bit, è ovvio che tutti i tipi di dimensioni superiori siano multipli del byte.
Per il resto, concordo con oregon, lo standard ASCII era un charset a 7 bit, che era poi in genere la parte comune ai vari codepage a 8 bit "nazionali" o specifici del produttore che sono stati inventati in seguito (il "raddoppio" della tabella caratteri ovviamente ha approfittato del fatto che molti microprocessori operavano con byte da 8 bit).
Tuttora ci si tira dietro l'eredità dell'ASCII a 7 bit in diversi formati, come il MIME, che in genere codificano qualunque dato binario in base64 per evitare problemi con eventuali sistemi che si aspettano solo caratteri di 7 bit nei messaggi.
Amaro C++, il gusto pieno dell'undefined behavior.