04/11/13 18:08
spode
Studiando i caratteri, i numeri (rappresentati come IEEE 754, fixed point, interi, ecc.) e le stringhe mi è balenata la seguente domanda:
come fa una CPU a distinguere questi diversi tipi (stringhe e numeri) se sono rappresentati tutti come sequenze di 0 e 1? C'è un qualche header di riconoscimento o si fa il conto dei bit (ogni 32 bit cambia ciò si vuole rappresentare)?
aaa
04/11/13 18:20
Qwertj
La CPU lavora sui bit, per lei (o lui?) è tutto un numero
Il "tipo" di dato è un'astrazione che indica solamente al programma come gestire le diverse variabili, ed è memorizzato nella RAM insieme al resto del programma e ai dati stessi
E' a livello software insomma
aaa
04/11/13 18:39
Il problema non sono le risposte ma le domande che fai che hanno poco senso, proprio perché non hai chiaro il funzionamento di tutto (ad esempio, per la CPU non ha alcun senso parlare di char o integer ...)
Per capire bene devi avere qualche base preliminare e cominciare, magari, dal capire cosa sia il codice ASCII, il sistema di numerazione binario, la rappresentazione dei dati per un sistema digitale, ecc...
Solo molto dopo puoi passare alla CPU, studiandone i blocchi, magari di una semplice non per forza una moderna e complicata. Chiarirti cosa sia il "bus degli indirizzi", il "bus dei dati", i "segnali di controllo" ...
Ultima modifica effettuata da 04/11/13 18:40
04/11/13 18:54
ZioCrocifisso
La CPU non li riconosce, sa cosa deve fare e come deve operare in base a ciò che sta scritto nel software. Per esempio, nel caso di x86, le istruzioni che compiono operazioni aritmetiche sui numeri interi sono "add", "sub", ecc. mentre quelle per i numeri a virgola mobile hanno il prefisso "f", come in fadd (in questo caso è la FPU però a eseguire i calcoli). Riguardo alla dimensione invece, alcune istruzioni hanno delle varianti (es. movd per le doubleword, movq per quadword), e quindi anche in questo caso è specificato dal software. Invece i caratteri e le stringhe sono semplicemente interi e array di interi, la CPU non li tratta in modo speciale, è a livello software che vengono rappresentati in forma testuale.
aaa
04/11/13 18:57
E in realtà anche le istruzioni "add" "sub" della CPU sono semplicemente numeri (opcode) ... le "add" "sub" sono solamente rappresentazioni umane del "lavoro" che ogni opcode fa eseguire alla CPU
18/11/13 15:51
spode
Leggendo le risposte, e in particolare una di queste, mi sembra giusto che io torni a questa domanda quando avrò studiato qualcosa in più!
Grazie ancora! =)
aaa
18/11/13 16:29
Se hai questa impressione, è sicuramente giusta ...