Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
Analizziamo nel dettaglio DJI RS 5, l'ultimo arrivato della famiglia Ronin progettato per videomaker solisti e piccoli studi. Tra tracciamento intelligente migliorato e ricarica ultra rapida, scopriamo come questo gimbal eleva la qualità delle produzioni.
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D è la nuova CPU gaming di riferimento grazie alla 3D V-Cache di seconda generazione e frequenze fino a 5,6 GHz. Nei test offre prestazioni superiori a 9800X3D e 7800X3D, confermando la leadership AMD nel gaming su PC.
Le soluzioni FSP per il 2026: potenza e IA al centro
Le soluzioni FSP per il 2026: potenza e IA al centro
In occasione del Tech Tour 2025 della European Hardware Association abbiamo incontrato a Taiwan FSP, azienda impegnata nella produzione di alimentatori, chassis e soluzioni di raffreddamento tanto per clienti OEM come a proprio marchio. Potenze sempre più elevate negli alimentatori per far fronte alle necessità delle elaborazioni di intelligenza artificiale.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 14-07-2011, 10: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, 15: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, 16:53   #3
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2787
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, 01: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, 09:46   #5
wingman87
Senior Member
 
Iscritto dal: Nov 2005
Messaggi: 2787
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, 10: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, 12: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, 13: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, 14: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, 15: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, 15: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, 15: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, 15: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, 15: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, 16: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, 18: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


DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker DJI RS 5: stabilizzazione e tracking intelligent...
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequen...
Le soluzioni FSP per il 2026: potenza e IA al centro Le soluzioni FSP per il 2026: potenza e IA al ce...
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa AWS annuncia European Sovereign Cloud, il cloud ...
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto Redmi Note 15 Pro+ 5G: autonomia monstre e displ...
SpaceX sta provando le piastrelle isolan...
Il National Reconnaissance Office statun...
Volkswagen avvia la produzione su CEA: c...
La crisi delle memorie non influenzer&ag...
MoM-z14 è la galassia scoperta da...
Da Sony nuovi display professionali dell...
Com'è fatta una delle e-bike pi&u...
iPhone 16 domina il 2025: ecco la classi...
Huawei a supporto delle startup: potenzi...
Iliad è il miglior operatore di l...
Le pompe di calore parlano italiano: Bon...
Moltbot non è solo un chatbot: ag...
Sinner e Alcaraz fermati dall'arbitro: i...
L'audio-video professionale arriva a MIR...
Musk fa i complimenti alla Cina: nel set...
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:27.


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