Prendere un byte da 8 bit, aggiungere altri 8 bit ‘inutili’, salvarlo in RAM, fare l’incremento, poi nuovamente prendere quei 16 bit, tagliarne 8
@Amx: quello che ai descritto lo fai in quel modo nei seguenti linguaggi di programmazione
C, C++, Assembly, Rust, D, Zig, Nim
ed altri che ora non ricordo. Come noti, non ho messo Python nella lista.
Anche NO: CHI HA DETTO che devi aggiungere bit inutili?
DIPENDE dalla CPU e dalla dimensione MINIMA dei dati che possono essere trasferiti DA E PER la memoria. In genere e' un byte, MA potrebbero essere anche 2 byte alla volta QUINDI i byte inutili sono AGRATIS. Inoltre dipende da quanti bit e' la CPU: se e' a 32 bit e gestisce SOLO dati a 32 bit, anche se leggi 8 bit la CPU DEVE convertirli in una sequeza di 32 bit. E' quello che NORMALMENTE FANNO le CPU moderne quando leggono dati con un numero di bit INFERIORI alla destinazione.
.
E questo e' implementato in HARDWARE, QUINDI NON C'E' perdita di tempo perche' E' FISICAMENTE IMPOSSIBLE fare di meglio.
.
Comunque i processori Intel, AMD, ARM SUPPORTANO tutte queste “caratteristiche”.
E' SOLO un problema del “programmatore” che non sa usarle!
.
Se potessi fare, come per un int, bytevalue+=1 è molto più veloce (e vabbè) come calcolo. E occupi meno RAM.
Anche NO!
Le idee sono PARECCHIO confuse! Questo e' quello che scrivi con un linguaggio ad alto livello NON quello che fai a livello HARDWARE/CPU
TUTTE le CPU ‘mainstream’ Iintel, AMD, ARM, RiscV, Motorola,…) sono basate su registri QUINDI l'operazione sara':
leggi un byte dalla memoria e portalo NEL registro, incrementa di uno il valore del registro, scrivi il contenuto del registro in memoria.
Meno di cosi' non si puo' fare perche' lo fa DIRETTAMENTE l'hardware.
Usare Python, un linguaggio INTERPRETATO, in cui TUTTI I valori sono oggetti, e'
100/1000 VOLTE PIU' INNEFICIENTE
ANCHE SE a te sembra che si scriva meno codice! NON E' COSI. Tu PENSI di scrivere meno codice MA IN REALTA" la quantita' di operazioni fatte e' DECINAIA di volte maggiore.
Ti consiglio di acquistare un libro su ‘architettura dei calcolatori’ e studiare un po'.
Ed anche uno su “linguaggi formali e compilatori”/
Non capisco come, lavorando con hardware poco potente e quindi con la necessità di scrivere codice il piu'efficiente possibile, tu non sappia gia' queste cose.
Si faceva grafica 3d in real time quando le CPU viaggiavano a DECINE DI MEGAHERZ, implementando tutto in assembly.
Oggi la CPU piu' scalcinata e' cento volte piu' potente (QUALCHE GIGAHERZ)! Ci puoi implementare la VR immersiva!