前兩天看到的問題,展開寫一下。
我們都知道計算機是以二進位制為基礎。儲存的基本單位是bit,也稱為位元、二進位制位。1bit 可以表示 0 或者 1 兩個數字,是可能存在的最小的資訊量,任何小於1 bit 的內容都算不上資訊。
複雜的內容就要用多 bit 來表示。byte,也稱為位元組,通常用作計量單位。1 byte 等於 8 bit,即 1 byte 可以表示 28 內容。
先說明一下,在 mysql 中的整數型別,可以分為unsigned
和signed
兩種,即無符號和有符號,具體內容這裡不展開。tinyint
的大小就是 1 byte,在signed
型別能表示的數字以下表為例。(注:**根據《編碼》修改,僅做舉例說明,不代表 mysql 實際儲存)
二進位制數
十進位制數
10000000
-128
10000001
-127
10000010
-126
10000011
-125
......
11111101
-311111110
-211111111
-100000000
000000001
100000010
2...
...011111100
124011111101
125011111110
126011111111
127在上表中我們看到,首位的 bit 用來表示符號,因此在sigend
是少一位 bit 來儲存內容。int
是 4 byte,結合上述,可以得出int
在signed
最大值為
$$ 2^-1=2147483647 $$
在unsigned
中,無需首位 bit 表示符號,因此為
$$ 2^-1=4294967295 $$
int 最大值 239 滑動視窗最大值
給定乙個陣列 nums,有乙個大小為 k 的滑動視窗從陣列的最左側移動到陣列的最右側。你只可以看到在滑動視窗內的 k 個數字。滑動視窗每次只向右移動一位。返回滑動視窗中的最大值。示例 輸入 nums 1,3,1,3,5,3,6,7 和 k 3 輸出 3,3,5,5,6,7 解釋 滑動視窗的位置 最大...
go語言int型別最大值
正數的補碼是自己本身 負數的補碼是,先取反碼 首尾不反 然後 1 2.在go語言中 0表示對0取反 我們假如是4位代表乙個數字的話,最高位是符號位 0在計算機中用補碼的形式存在是 0000 取反得到 1111 是 1在計算機中以補碼的形式存在,所以 0 就是 1 所以 1 就是 1110 就是 2 ...
int型的數到底最大值是多少?
首先,我們要知道在計算機裡怎麼儲存數字的。在計算機裡,對數字編碼有3種方式 原碼 補碼 反碼。原碼其實就是10進製數直接轉2進製數的結果。比如 十進位制的18,在二進位制裡是10010。那這裡的10010就是原碼。我們可以sizeof一下我們自己的電腦上int型佔幾個位元組。我的是4個位元組,也就是...