Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Logitech G325, G305 e G316 X: il tris per chi non vuole rinunciare a nulla, spendendo poco
Logitech G325, G305 e G316 X: il tris per chi non vuole rinunciare a nulla, spendendo poco
Nelle ultime settimane abbiamo provato il mouse Logitech G305, la tastiera G316 X 98 e le cuffie G325. Si tratta del setup entry-level di Logitech che ormai, di "entry-level" ha ben poco. Tastiera e mouse offrono prestazioni di livello competitivo con quasi nessuna rinuncia e un livello di personalizzazione estremamente elevato. Le cuffie, invece, hanno mostrato qualche debolezza, ma propongono un ventaglio di funzionalità completo che consente di abbandonare completamente i cavi
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
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


Logitech G325, G305 e G316 X: il tris per chi non vuole rinunciare a nulla, spendendo poco Logitech G325, G305 e G316 X: il tris per chi no...
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...
Eni mette un tetto ai prezzi dei carbura...
BYD Seagull (Dolphin Surf), l'elettrica ...
Multa milionaria per un data center del ...
F-Droid 2.0 si aggiorna con una nuova gr...
Microsoft ridisegna Copilot: dalla chat ...
Volkswagen porterà 20 videogiochi...
Troppa IA storpia: OpenAI licenzia in tr...
Marathon, Bungie svela i contenuti dell'...
Autunno, tempo di potature: i tagliasiep...
Meta Muse, due sviluppatori riescono a o...
Google AI Pro gratis: festa a sorpresa p...
MacSync colpisce macOS usando i calendar...
L'agente IA cancella 48 mila file in 103...
Jensen Huang avverte: l'AI può aiutare a...
Elettrico Renault in arrivo in Spagna: 6...
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: 21:58.


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