TINYINT

TINYINT

在計算機科學中, TINYINT是整數數據類型數據 ,是表示某種數學整數 範圍數據類型 。 積分數據類型可以具有不同的大小,並且可以允許或不允許包含負值。 整數通常在計算機中表示為一組二進制數字(位)。 分組的大小各不相同,因此可用的整數大小集在不同類型的計算機之間有所不同。 計算機硬體(包括虛擬機 )幾乎總是提供一種將處理器暫存器或存儲器地址表示為整數的方法。

基本介紹

  • 外文名:TINYINT
  • 目的:數據存儲
  • 分類:UNSIGNED類型、欄位類型
  • 範圍:存儲-128到127的整數
基本信息,相關討論,價值和代表,常用的積分數據類型,位元組和八位位元組,Word,短整數,long整數編輯,

基本信息

TINYINT 型的欄位如果不設定UNSIGNED類型,存儲-128到127的整數。

相關討論

通常,為了節省空間,應該儘可能的使用最小的整型數據。一個TINYINT型數據只占用一個位元組,一個INT型數據占用四個位元組。這看起來似乎差別不大,但是在比較大的表中,位元組數的增長是很快的。另一方面,一旦你已經創建了一個欄位,要修改它是很困難的。因此,為安全起見,你應該預測一下,一個欄位所需要存儲的數值最大有可能是多大,然後選擇適當的數據類型。

價值和代表

具有整數類型的項的是它對應的數學整數。積分類型可以是無符號的(只能表示非負整數)或有符號(也能表示負整數)。
整數值通常在程式的原始碼中指定為可選的前綴為+或 - 的數字序列。一些程式語言允許其他符號,例如十六進制(基數16)或八進制(基數8)。一些程式語言也允許數字組分隔設定。
此數據的內部表示形式是值存儲在計算機記憶體中的方式。與數學整數不同,計算機中的典型數據具有一些最小和最大可能值。
正整數的最常見表示是使用二進制數字系統的一串。存儲位的存儲器位元組的順序是變化的;看到位元組序。整數類型的寬度精度是其表示中的位數。具有n位的整數類型可以編碼2數字;例如,無符號類型通常表示非負值0到2-1。有時使用對位模式的整數值的其他編碼,例如二進制編碼的十進制格雷碼,或者諸如ASCII的列印字元碼。
在二進制計算系統中有四種眾所周知的方式來表示有符號數。最常見的是二進制補碼,它允許帶有n位的有符號整數類型表示從-2到2-1的數字。二進制補碼算法很方便,因為表示和值之間存在完美的一對一對應關係(特別是沒有單獨的+0和-0),並且因為加法減法乘法不需要區分有符號和無符號類型。其他可能性包括偏移二進制,符號幅度和1'補碼。
一些計算機語言以與機器無關的方式定義整數大小;其他人根據底層處理器字大小有不同的定義。並非所有語言實現都定義所有整數大小的變數,並且在特定實現中定義的大小甚至可能不是不同的。一種程式語言中的整數可以是不同語言或不同處理器上的不同大小。

常用的積分數據類型

名稱範圍(假設已簽名的兩個補碼)十進制數字用途實現
4
蠶食食品
簽名:從-8到7,從 - (2)到2- 1
1
二進制編碼的十進制,單個十進制數字表示
N / A
N / A
N / A
N / A
N / A
N / A
無符號:從0到15,等於2- 1
2
8
簽名:從-128到127,從 - (2)到2- 1
3
ASCII字元,UTF-8字元編碼中的代碼單元
int8_t,char
為sbyte
Shortint
位元組
TINYINT
整數(1)
無符號:從0到255,等於2- 1
3
uint8_t,char
位元組
位元組
N / A
unsigned tinyint
N / A
16
半字,,短
簽名:從-32,768到32,767,從 - (2)到2- 1

UCS-2字元,UTF-16字元編碼中的代碼單元
int16_t,short,int
SMALLINT
SMALLINT
整數(2)
無符號:從0到65,535,等於2- 1

uint16_t,unsigned,unsigned int
USHORT
char
unsigned smallint
N / A
32
單詞,,雙字,長字,整數
簽署:從-2,147,483,648到2,147,483,647,從 - (2)到2- 1
10
UTF-32字元,帶alpha的真彩色FourCC,32位計算指針
int32_t,int,long
INT
LongInt;整數
INT
INT
整數(4)
無符號:從0到4,294,967,295,等於2- 1
10
uint32_t,unsigned,unsigned int,unsigned long
UINT
LongWord;DWord;紅衣主教
N / A
unsigned int
N / A
64
word,doubleword,longword,long long,quad,quadword,qword,int64
簽署:從-9,223,372,036,854,775,808到9,223,372,036,854,775,807,從 - (2)到2- 1
19
時間(自Unix紀元以來的毫秒數),64位計算中的指針
int64_t,long,long long
Int64的
BIGINT
整數(8)
無符號:從0到18,446,744,073,709,551,615,等於2- 1
20
uint64_t,unsigned long long
ULONG
UInt64;四字
N / A
unsigned bigint
N / A
128
八字,雙四字
簽署:從-170,141,183,460,469,231,731,687,303,715,884,105,728到170,141,183,460,469,231,731,687,303,715,884,105,727,從 - (2)到2- 1
39
複雜的科學計算,IPv6地址,GUID
C:僅作為非標準編譯器特定擴展提供
N / A
N / A
N / A
N / A
整數(16)
無符號:從0到340,282,366,920,938,463,463,374,607,431,768,211,455,等於2- 1
39
N / A
ñ
n位整數
(一般情況)
簽名:- (2)到(2- 1)
⌈(n- 1)log 102⌉
Ada:範圍-2 **(n-1).. 2 **(n-1)-1
無符號:0到(2- 1)
⌈nlog102⌉
Ada:範圍0..2 ** n-1,mod 2 ** n;標準庫或第三方任意算術庫'許多語言中的BigDecimal或Decimal類,如Python,C ++等。
  1. ^並非所有SQL方言都具有無符號數據類型。
  2. C / C ++中char,short,int,long和long long的大小取決於語言的實現。
  3. Delphi的整數和紅衣主教的大小無法保證,因平台而異;通常分別定義為LongInt和LongWord。
  4. ^Java不直接支持對char類型的算術。結果必須從int轉換回char。
不同的CPU支持不同的整數數據類型。通常,硬體將支持有符號和無符號類型,但只支持一小組固定寬度。
上表列出了常見處理器在硬體中支持的整體類型寬度。高級程式語言提供了更多可能性。通常有一個“雙寬度”整數類型,其位數是最大硬體支持類型的兩倍。許多語言也有位欄位類型(指定的位數,通常限制為小於最大硬體支持的寬度)和範圍類型(只能表示指定範圍內的整數)。
一些語言,如LispSmalltalkREXXHaskellPython和Perl 6支持任意精度整數(也稱為無限精度整數bignums)。其他不支持此概念作為頂級構造的語言可能有可用於使用較小變數數組表示非常大的數字的庫,例如Java的BigInteger類或Perl 5的“bigint”包。它們使用儘可能多的計算機記憶體來存儲數字;但是,計算機只有有限的存儲量,因此它們也只能表示數學整數的有限子集。這些方案支持非常大的數字,例如,一千位元組的記憶體可用於存儲長達2466個十進制數字的數字。
布爾標誌類型是一種只能表示兩個值的類型:0和1,通常分別用falsetrue標識。這種類型可以使用單個位存儲在存儲器中,但為了方便定址和訪問速度,通常給出一個完整的位元組。
四位數被稱為半位元組(當吃東西時,小於咬一口)或者nybble(在位元組位元組的形式上是雙關語)。一個半位元組對應於十六進制中的一個數字,並且以二進制編碼的十進制數保存一個數字或符號代碼。

位元組和八位位元組

主要文章:位元組
術語位元組最初意味著'最小的可定址存儲單元'。過去,全部使用了5,6,7,8和9位位元組。還有一些計算機可以處理單個位(“位定址機器”),或者只能處理16位或32位數量(“字定址機器”)。通常不使用術語位元組與位和字定址機器相關聯。
術語八位位元組總是指8位數量。它主要用於計算機網路領域,其中具有不同位元組寬度的計算機可能必須進行通信。
在現代使用中,位元組幾乎總是意味著8位,因為所有其他尺寸都已被廢棄;因此位元組已成為八位位元組的同義詞。

Word

術語“字”用於由特定體系結構的處理器同時處理的一小組位。因此,字的大小是CPU特定的。已經使用了許多不同的字大小,包括6,8,14,16,18,24,32,36,39,40,48,60和64位。由於它是體系結構的,因此的大小通常由系列中的第一個CPU設定,而不是後來兼容的CPU的特性。從單詞派生的術語的含義,例如長字雙字四字半字,也隨CPU和OS而變化。
實際上所有新的桌面處理器都能夠使用64位字,儘管8位和16位字大小的嵌入式處理器仍然很常見。36位字長在計算機早期很常見。
軟體不可移植性的一個重要原因是錯誤地假設所有計算機具有與程式設計師使用的計算機相同的字大小。例如,如果使用C語言的程式設計師錯誤地將int用於存儲大於2-1的值的變數聲明為int,則程式將在具有16位整數的計算機上失敗。該變數應該被聲明為long,在任何計算機上至少有32位。程式設計師也可能錯誤地認為指針可以轉換為整數而不會丟失信息,這可能適用於(某些)32位計算機,但在具有64位指針和32位整數的64位計算機上會失敗。

短整數

與同一台機器上的標準整數相比,短整數可以表示可能占用較少存儲空間的整數,而具有較小的範圍。
在C中,用short表示。它必須至少為16位,並且通常小於標準整數,但這不是必需的。在Java中,short總是一個16位整數。在Windows API中,數據類型SHORT在所有計算機上定義為16位有符號整數。
常見的短整數大小
程式語言平台數據類型名稱符號類型位元組存儲最低價值最大價值
C和C ++
常見的實現
2
-32,767
+32,767
未簽約的短片
無符號
2
0
65,535
.NET CLR / CTS
2
-32,768
+32,767
USHORT
無符號
2
0
65,535
Java的
2
-32,768
+32,767

long整數編輯

長整數可以表示整數,其整數範圍大於或等於同一台機器上標準整數的整數。在C中,它表示為long。它必須至少為32位,並且可以或可以不大於標準整數。
常見的長整數大小
程式語言批准類型平台數據類型名稱位元組存儲簽名範圍無符號範圍
CISO / ANSI C99
國際標準
Unix,16/32位系統
Windows,16/32/64位系統
4
(最低要求4)
-2,147,483,647至+2,147,483,647
0到4,294,967,295
(最低要求)
CISO / ANSI C99
國際標準
Unix
64位系統
8
(最低要求4)
-9,223,372,036,854,775,807至+ 9,223,372,036,854,775,807
0至18,446,744,073,709,551,615
C ++ISO / ANSI
國際標準
UnixWindows
16/32位系統
4
(最低要求4)
-2,147,483,648至+2,147,483,647
0到4,294,967,295
(最低要求)
C ++ / CLI
國際標準
ECMA-372
UnixWindows
16/32位系統
4
(最低要求4)
-2,147,483,648至+2,147,483,647
0到4,294,967,295
(最低要求)
公司標準
4
-2,147,483,648至+2,147,483,647
N / A
公司標準
Windows,Mac OS X.
4
-2,147,483,648至+2,147,483,647
N / A
公司標準
BigInt有
8
-9,223,372,036,854,775,808至+ 9,223,372,036,854,775,807
0至18,446,744,073,709,551,615
ECMA國際標準
Microsoft .NET
long或Int64
8
-9,223,372,036,854,775,808至+ 9,223,372,036,854,775,807
0至18,446,744,073,709,551,615
Java的
國際/公司標準
8
-9,223,372,036,854,775,808至+ 9,223,372,036,854,775,807
N / A
Int64的
8
-9,223,372,036,854,775,808至+ 9,223,372,036,854,775,807
0到18,446,744,073,709,551,615(Qword類型)
在C程式語言的C99版本和C ++的C ++ 11版本中,支持long long類型,它具有標準long的最小容量的兩倍。要求C代碼符合以前的C ++標準C ++ 03的編譯器不支持這種類型,因為C ++ 03中不存在long long類型。對於符合ANSI / ISO標準的編譯器,指定範圍的最低要求必須得到滿足。 但是,允許擴展此範圍。在平台之間交換代碼和數據或進行直接硬體訪問時,這可能是一個問題。因此,有幾組標題提供與平台無關的精確寬度類型。C標準庫提供了stdint.h;這是在C99和C ++ 11中引入的。

    相關詞條

    熱門詞條

    聯絡我們