Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio
Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio
POCO F9 Pro arriva sul mercato con l'obiettivo di portare prestazioni da smartphone top di gamma in una fascia di prezzo "più aggressiva", senza rinunciare a un comparto fotografico finalmente all'altezza. Dopo averlo testato sul campo, emerge uno smartphone molto più completo rispetto alla generazione precedente, ma anche con alcuni piccoli compromessi che diventano difficili da ignorare quando il prezzo di listino sfiora i 1.000 euro.
Tra audio e AI: la ricetta di Qualcomm per l'agentic AI
Tra audio e AI: la ricetta di Qualcomm per l'agentic AI
Snapdragon Soung Gen 2 è la piattaforma Qualcomm per i dispositivi audio sempre più integrati nel mondo dell'intelligenza artificiale: al prorpio interno tanta potenza elaborativa per gestire al meglio le necessità d'uso dell'agentic AI
Qualcomm annuncia la nuova generazione di SoC Snapdragon 8 Elite Gen 6
Qualcomm annuncia la nuova generazione di SoC Snapdragon 8 Elite Gen 6
In occasione del proprio Snapdragon Summit Qualcomm annuncia i due nuovi chip per dispositivi mobile di fascia alta che entreranno nel mercato nel corso del 2027: tanta potenza a disposizione per elaborazioni di intelligenza artificiale sempre più complesse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 14-07-2011, 09:46   #1
gaiapuffo
Member
 
Iscritto dal: Jul 2011
Messaggi: 152
memoria computer programmazione

ciao volevo chiedere una cosa...quando salvo un dato vi è il vincolo di allineamento cioè la memoria è fatta in questo modo

0
4
8
12 ecc

quindi i dati vengono salvati in blocchi da 4 byte ma se io ad esempio ho una variabile di tipo int
e la trasformo in una short in tutti casi anche la variabile short occuperà 4 byte solo che potra contenere una valore più piccolo?
gaiapuffo è offline   Rispondi citando il messaggio o parte di esso
Old 14-07-2011, 14:27   #2
Marinelli
Senior Member
 
L'Avatar di Marinelli
 
Iscritto dal: Aug 1999
Città: Tolmezzo (UD) - Milano
Messaggi: 13744
Discussione spostata nella sezione dedicata alla programmazione.

Ciao.
__________________
...to go where no one has gone before.
One ring to rule them all, one ring to find them, one ring to bring them all and in darkness bind them.
Caron, non ti crucciare: vuolsi così colà dove si puote ciò che si vuole, e più non dimandare.
Marinelli è offline   Rispondi citando il messaggio o parte di esso
Old 14-07-2011, 15:53   #3
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2794
Esempio pratico:
a è un intero di 4 byte
b è un intero di 2 byte

se esegui un assegnamento b=a ci sono 2 casi:
1: il valore di a è nel range di valori rappresentabili con 2 byte -> in b il valore viene copiato correttamente
2: il valore di a è fuori dal range -> in b il valore viene copiato troncato (c'è perdita di informazione).

Per questo genere di operazioni è richiesto un cast esplicito perché così il programmatore deve assumersi la responsabilità di un eventuale errore dovuto a troncamento.

Non ti ho risposto direttamente ma spero che tu abbia capito.
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 16-07-2011, 00:27   #4
lesto
Junior Member
 
Iscritto dal: Mar 2010
Messaggi: 13
la short, essendo solo di 2 byte, potra cotenere solo 2^16 valori. Non è corretta la tesi di wingman87:
immaginiamo, per semplicità, di usare uno short (2 byte) e 1 byte.
ovviamente, per ogni short salvato leggerò 2 byte: il primo sarà 0 se il valore salvato è < di 2^8 (senza segno), e quindi il secondo byte letto conterrà il valore giusto.
Altrimenti leggerai in entrambi i casi un valore erroneo. Mettiamola così: Se vuoi mettere una variabile in una più piccola, controlla che tutti i byte rimententi (partendo dal fondo) siano a 0: in questo caso non hai overflow. Vale per i numeri senza segno, per quelli con segno, l'ultimo bit (quello però più a sinistra) può valere 1, ovvero indicare che il numero è negativo.
lesto è offline   Rispondi citando il messaggio o parte di esso
Old 16-07-2011, 08:46   #5
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2794
Intendi dire che, anche se il valore della variabile più grande è nel range, il valore non viene copiato correttamente se esso è negativo (per via del bit di segno)?
wingman87 è offline   Rispondi citando il messaggio o parte di esso
Old 16-07-2011, 09:23   #6
lesto
Junior Member
 
Iscritto dal: Mar 2010
Messaggi: 13
esatto, devo anche correggermi che il sistema di mettere il bit più a sinistra a 1 è parzialmente corretto, perchè di solito si usa il complemento a 2, un metodo di memorizazione dei valori un poco complicato a prima vista, ma che rende la somma di due numeri (indipendentemente se positivi o negativi) sempre una somma, altrimenti per ogni somma dovrebbe esserci qualche if aggiuntivo per dedicedere se il secondo dei dati è negativo di usare una sottrazione, se il primo si complica un poco di più... Insomma avresti un sacco di cai particolare = più codice da debuggare
lesto è offline   Rispondi citando il messaggio o parte di esso
Old 16-07-2011, 11:53   #7
pabloski
Senior Member
 
Iscritto dal: Jan 2008
Messaggi: 8406
Quote:
Originariamente inviato da gaiapuffo Guarda i messaggi
ciao volevo chiedere una cosa...quando salvo un dato vi è il vincolo di allineamento cioè la memoria è fatta in questo modo

0
4
8
12 ecc

quindi i dati vengono salvati in blocchi da 4 byte ma se io ad esempio ho una variabile di tipo int
e la trasformo in una short in tutti casi anche la variabile short occuperà 4 byte solo che potra contenere una valore più piccolo?
non confondere lo spazio di memoria riservato a determinati tipi di dato e l'allineamento

si tratta di due cose abbastanza diverse

ogni tipo di dato ha una sua specifica dimensione...short ad esempio è 16 bit, int è 32 bit, long è 64 bit, ecc....

tuttavia per motivi tecnici si procede ad allineare le variabili al word boundary e così abbiamo che nei processori a 32 bit si allinea a 32 bit e così via

in pratica significa mettere i dati nelle locazioni di memoria che sono multiple di 4 ( nel caso dei 32 bit )

ovviamente se costringi una short a prendersi 4 bytes, gli altri 2 bytes inutili dovranno essere messi a zero

quello che ottieni in sostanza è che la short sempre short è, ma fisicamente occupa 32 bit
pabloski è offline   Rispondi citando il messaggio o parte di esso
Old 16-07-2011, 12:06   #8
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da pabloski Guarda i messaggi
ogni tipo di dato ha una sua specifica dimensione...short ad esempio è 16 bit, int è 32 bit, long è 64 bit, ecc....
Non è così. Dipende dall'ABI del sistema e/o compilatore.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 16-07-2011, 13:24   #9
pabloski
Senior Member
 
Iscritto dal: Jan 2008
Messaggi: 8406
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
Non è così. Dipende dall'ABI del sistema e/o compilatore.
ovviamente il mio riferimento era a sistemi a 32 bit
pabloski è offline   Rispondi citando il messaggio o parte di esso
Old 16-07-2011, 14:00   #10
gaiapuffo
Member
 
Iscritto dal: Jul 2011
Messaggi: 152
un grazie di cuore per le risposte adesso ho capito
gaiapuffo è offline   Rispondi citando il messaggio o parte di esso
Old 16-07-2011, 14:17   #11
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da pabloski Guarda i messaggi
ovviamente il mio riferimento era a sistemi a 32 bit
E' lo stesso. Ci sono sistemi a 32 bit che hanno interi e long a 32 bit, e altri che definiscono questi ultimi a 64 bit.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 16-07-2011, 14:26   #12
pabloski
Senior Member
 
Iscritto dal: Jan 2008
Messaggi: 8406
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
E' lo stesso. Ci sono sistemi a 32 bit che hanno interi e long a 32 bit, e altri che definiscono questi ultimi a 64 bit.
vabbè ma non posso stare a spiegare tutte le varianti che esistono

alla fin fine il thread riguarda l'allineamento per cui mi sono attenuto è quello che è lo standard

ad esempio linux 64 bit ha interi a 32 bit e imho è una cosa giustissima da fare

che poi ci siano differenze tra vari compilatore e sistemi è irrilevante ai fini di questo thread
pabloski è offline   Rispondi citando il messaggio o parte di esso
Old 16-07-2011, 14:38   #13
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Allora non scrivere cose che non sono corrette e parla soltanto di quello che attiene al thread.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 16-07-2011, 14:45   #14
pabloski
Senior Member
 
Iscritto dal: Jan 2008
Messaggi: 8406
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
Allora non scrivere cose che non sono corrette e parla soltanto di quello che attiene al thread.
beh no, sono corrette

al limite ho omesso che ci sono strani compilatori che non giocano secondo le regole

p.s. trovo non standard il fatto di avere int a 64 bit e nessuno mi convincerà mai del contrario
pabloski è offline   Rispondi citando il messaggio o parte di esso
Old 16-07-2011, 15:55   #15
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Io mi riferivo ai long che hanno un comportamento diverso su sistemi sempre a 32 bit, che è un chiaro esempio di come non esistono rigide definizioni in merito.

Riguardo agli int a 64 bit, non è strano, ma anzi è logico. Vuol dire che si è preferito mappare la "word di macchina" dell'ISA con un int. Quindi ISA a 64 bit -> int a 64 bit.

In ogni caso se ometti queste cose, che sono estremamente importanti, l'informazione che fornisci non è corretta.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 16-07-2011, 17:05   #16
pabloski
Senior Member
 
Iscritto dal: Jan 2008
Messaggi: 8406
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
In ogni caso se ometti queste cose, che sono estremamente importanti, l'informazione che fornisci non è corretta.
se il thread fosse relativo a quanto grossi sono i long e gli int avresti ragione

ma qui si tratta di spiegare in parole povere cos'è l'allineamento
pabloski è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione POCO F9 pro: potenza da vero top di gamma, display da 185 Hz e finalmente una fotocamera da prendere sul serio Recensione POCO F9 pro: potenza da vero top di g...
Tra audio e AI: la ricetta di Qualcomm per l'agentic AI Tra audio e AI: la ricetta di Qualcomm per l'age...
Qualcomm annuncia la nuova generazione di SoC Snapdragon 8 Elite Gen 6 Qualcomm annuncia la nuova generazione di SoC Sn...
realme 16 Pro Harry Potter Edition: il nuovo midrange ha uno stemma di Hogwarts che cambia colore al sole! realme 16 Pro Harry Potter Edition: il nuovo mid...
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce Recensione REDMI Note 17 Pro: il midrange con ba...
Opera: la VPN gratuita si accende in aut...
Giochi capaci di costruirsi in tempo rea...
Giochi DX11 su Intel Arc e Proton: le ot...
Bentley Torcal ufficiale: 876cv e ricari...
Counter-Strike 2: con poche modifiche, V...
Silent Hill potrebbe tornare al cinema c...
L'integrazione di ChatGPT su Siri è stat...
ASML: 'Non vendiamo assolutamente nulla ...
Anthropic limita Claude Opus 5.5 nello s...
Microsoft 365, l'Antitrust respinge le p...
SAP NOW AI Tour Milan: una giornata con ...
Quake Champions dice addio al free-to-pl...
Anker AeroClip 2, li indossi e dopo un p...
Notebook ASUS da gaming per il Back to S...
Auto elettriche UE al 21,7%: sorpasso si...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 00:29.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v