Numero intero (informatica): differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m r2.7.1) (Bot: Tolgo: vi:Số nguyên (khoa học máy tính) |
m clean up, replaced: dall''' → dall{{'}}'' |
||
(33 versioni intermedie di 25 utenti non mostrate) | |||
Riga 1:
In [[informatica]] si definisce '''intero''' (o nella sua forma [[
== Valore e rappresentazione ==
Il ''valore'' di un [[dato]] di tipo intero consiste nel numero intero a cui corrisponde. La sua ''rappresentazione'' consiste nel modo in cui esso è immagazzinato nella memoria del computer. I dati interi possono essere ''con segno'' o ''senza segno'', cosa che ne discrimina la capacità di rappresentare numeri negativi.
Riga 10:
== Tipi di dato interi comuni ==
{|
! Bit || Nome || Portata || Impieghi
|-
Riga 22:
|| C long int (su linux sistemi a 64 bit<ref name=agnerfog/>), C99 long long int (minimo), Java long
|-
| 128 || || ''Con segno:'' da −170.141.183.460.469.231.731.687.303.715.884.105.728 a +170.141.183.460.469.231.731.687.303.715.884.105.727<br />''Senza segno:'' da 0 a +340.282.366.920.938.463.463.374.607.431.768.211.455 || C int __attribute__ ((mode(TI))) (su sistemi a 64 bit con [[gNU Compiler Collection|gcc]])
|-
| ''n'' || Intero a ''n'' bit || ''Con segno:'' da -2^{n-1} a 2^{n-1} -1<br />''Senza segno:'' da 0 a 2^{n}-1 ||
|}
In genere ogni [[CPU]] supporta un ridotto numero di tipi di dati, sia con sia senza segno. La tabella sopra mostra i tipi supportati dalla maggior parte dei processori in commercio in via ''hardware''. Linguaggi di programmazione ad alto livello permettono ad esempio numeri composti da un numero di bit doppio rispetto al massimo supportato dall{{'}}''hardware''.
Alcuni linguaggi, come [[LISP]], [[REXX]] e [[Haskell (linguaggio)|Haskell]], supportano numeri a "precisione arbitraria" (conosciuti anche come interi a "precisione infinita" o ''bignum''); altri linguaggi possiedono librerie che permettono di rappresentare numeri attraverso insiemi di variabili più piccole, come i ''BigInteger'' di [[Java (linguaggio di programmazione)|Java]]. Questi metodi usano per la rappresentazione del numero tanta memoria quanta ne è necessaria, ma la memoria dei computer è finita, e quindi anche questi metodi permettono di rappresentare un insieme comunque finito di numeri interi. Si può comunque arrivare, con 8 KB di memoria, a rappresentare numeri di 2466 cifre.
Un tipo di dato [[Algebra di Boole|booleano]] o [[flag]] può rappresentare solo due valori: 0 e 1, generalmente associati rispettivamente a ''falso'' e ''vero''. Questo tipo può essere immagazzinato su un singolo bit, ma generalmente viene impiegato un intero byte per semplicità di indirizzamento e velocità di accesso.
Una stringa di quattro bit è chiamata [[nibble]]: uno di questi corrisponde ad una cifra in codifica [[esadecimale]] e contiene una cifra o un codice di segno in [[Binary-coded decimal|decimale binario]].
Un long integer (''intero lungo'') può contenere un numero intero positivo o negativo compreso in un intervallo uguale o più ampio di quello di una normale variabile ''intero'' sulla stessa piattaforma. Nella pratica è comune che un long integer occupi il doppio o lo stesso spazio richiesto da un normale integer, seppure questo non sia necessario. Una variabile definita col tipo long integer in un [[linguaggio di programmazione]] può avere una dimensione diversa da una variabile definita con un tipo simile in un altro linguaggio. Inoltre in alcuni linguaggi come [[Java (linguaggio di programmazione)|Java]] la dimensione è fissa per tutte le [[piattaforma (informatica)|piattaforme]], mentre in altri dipende dal tipo di macchina.▼
▲Un long integer (''intero lungo'') può contenere un numero intero positivo o negativo compreso in un intervallo uguale o più ampio di quello di una normale variabile ''intero'' sulla stessa piattaforma. Nella pratica è comune che un long integer occupi il doppio o lo stesso spazio richiesto da un normale integer, seppure questo non sia necessario. Una variabile definita col tipo long integer in un [[linguaggio di programmazione]] può avere una dimensione diversa da una variabile definita con un tipo simile in un altro linguaggio. Inoltre in alcuni linguaggi come [[Java (linguaggio)|Java]] la dimensione è fissa per tutte le [[piattaforma (informatica)|piattaforme]], mentre in altri dipende dal tipo di macchina.
Quella che segue è una tabella dei più comuni valori del ''long integer'' nei diversi linguaggi di programmazione:
{|
! linguaggio di programmazione || piattaforma || nome del tipo || spazio in byte || valore minimo || valore massimo
|-
| [[Visual Basic|VB]] || [[Microsoft Windows|Windows]] || <code>Long</code> || 4 || −2.147.483.648<br />o −2<sup>31</sup> || 2.147.483.647<br />o 2<sup>31</sup>−1
|-
| [[Visual Basic for Applications|VBA]] || [[Microsoft Windows|Windows]], [[Mac OS]] || <code>Long</code> || 4 || −2.147.483.648<br />o −2<sup>31</sup> || 2.147.483.647<br />o 2<sup>31</sup>−1
|-
| [[
o −2<sup>63</sup>
|| 9.223.372.036.854.775.807
o 2<sup>63</sup>−1
|-
| [[
o −2<sup>63</sup>
|| 9.223.372.036.854.775.807
o 2<sup>63</sup>−1
|-
| [[
o −2<sup>63</sup>
|| 9.223.372.036.854.775.807
o 2<sup>63</sup>−1
|-
| [[PHP]] || tutte le piattaforme || <code>$</code> || 8 || −9.223.372.036.854.775.808
o −2<sup>63</sup>
|| 9.223.372.036.854.775.807
o 2<sup>63</sup>−1
|}
L'[[API di Windows]] definisce il tipo <
== Puntatori ==
{{Vedi anche|Puntatore (programmazione)}}
Un
== Byte e ottetto ==
{{vedi anche|Byte}}
Il termine ''byte'' era inizialmente riferito alla '''più piccola quantità di memoria indirizzabile''': in passato furono usati byte a 5,6,7,8 e 9 bit. Furono creati inoltre computer che potevano indirizzare i singoli bit o solo ''parole'' di 16 o 32 bit, al riguardo dei quali il termine byte non era utilizzato affatto.
Il termine "ottetto" si riferisce esclusivamente a quantità di memoria di 8 bit. Si utilizza soprattutto per le [[rete informatica|reti informatiche]], in cui elaboratori che utilizzano più formati possono dover comunicare.
Attualmente il termine "ottetto" è caduto in disuso insieme agli altri formati, e viene generalmente identificato col termine "byte".
Riga 69 ⟶ 83:
I byte sono utilizzati per misurare ogni quantità di dati dell'informatica, che sia una stringa di testo di 50 byte, un [[file]] da 100 KB, un modulo di [[RAM]] da 128 MB o un [[disco rigido]] da 30 GB. I prefissi utilizzati per le unità di misura sono spesso le stesse del [[Sistema Internazionale]], ma le grandezze sono diverse; ciò è importante soprattutto per i dischi rigidi, i cui produttori ne pubblicizzano la capacità con le unità di misura del SI, facendoli sembrare più capaci di quanto siano in realtà (vedere al riguardo l'articolo sui [[prefissi binari]]).
== Word ==
{{vedi anche|Word}}
Il termine ''word'' (
== Note ==
<references><ref name=agnerfog>{{Cita web|url=http://www.agner.org/optimize/calling_conventions.pdf|titolo=Calling conventions for different C++ compilers and operating systems: Chapter 3, Data Representation |data=16 febbraio 2010 |accesso=30 agosto 2010 |cognome=Fog |nome=Agner}}</ref></references>▼
<references>
▲
== Collegamenti esterni ==
[[Categoria:Standard informatici]]▼
* {{Collegamenti esterni}}
* {{FOLDOC||integer}}
{{portale|informatica}}
▲[[Categoria:Standard informatici]]
[[Categoria:Tipi di dato]]
|