mysql中TINYINT的取值範圍_Mysql

來源:互聯網
上載者:User

在MySQL的資料類型中,Tinyint的取值範圍是:帶符號的範圍是-128到127。無符號的範圍是0到255(見官方《MySQL 5.1參考手冊》http://dev.mysql.com/doc/refman/5.1/zh/column-types.html)。

Tinyint佔用1位元組的儲存空間,即8位(bit)。那麼Tinyint的取值範圍怎麼來的呢?我們先看無符號的情況。無符號的最小值即全部8位(bit)都為0,換算成十進位就是0,所以無符號的Tinyint的最小值為0.無符號的最大值即全部8bit都為1,11111111,換算成十進位就是255.這很好理解。

有符號的Tinyint的取值範圍是怎麼來的呢?在電腦中,用最高位表示符號。0表示正,1表示負,剩下的表示數值。那麼有符號的8bit的最小值就是

  1  1  1  1  1  1  1  1=-127

表示負值

最大值:

  0  1  1  1  1  1  1  1=+127

表示正值

怎麼有符號的最小值是-127,而不是-128呢?這就是本文要說的關鍵地方了,在電腦中,表示負值是用補碼

為什麼有符號的TINYINT的最小值是-128?雖然“-0”也是“0”,但根據正、反、補碼體系,“-0”的補碼和“+0”是不同的,這樣就出現兩個補碼代表一個數值的情況。為了將補碼與數字一一對應,所以人為規定“0”一律用“+0”代表。同時為了充分利用資源,就將原來本應該表示“-0”的補碼規定為代表-128。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.