應用據庫也很久了,只是幾個概念問題一直在糾結!
1 、字節(byte)
2、位(bit)
3、存儲單位
4、字節和二進制的關系,即byte和bit的轉化關系。
看來看去,其實就是一個概念里面的兩個不同單位,標准單位值之間的轉化,首先要理解的就是不論是bit還是byte,都是存儲單位,用來計量存儲容量的單位。 那么再來看二進制和bit的關系,二進制系統中,每個0或者1就是一個位即bit。而在計算機系統中數據存儲的時候用byte,存儲數據時最小單位就是byte,跟bit沒關系。數據傳送的時候大部分又用bit,而一個字節(byte)=8個位(bit)。
之所以很糾結就是主要關於,一個漢字、一個英語字母、一個漢字符號、一個英語符號分別站多少位,一個漢字占2個字節,一個英語字母占1個字節不分大小寫。
int 存儲數值的范圍是:-2的32次方--2的32次發減1,(也就是-247483648至147483647之間的所有正負整數),所以說int是不需要指定長度為多少的。
解釋下char和nchar的異同
首先char眾所周知最大取值是8000,每一個字節就是一個存儲單位,英文和數值只占一個存儲單位,所以char(10)可以最多容納10個英文或者數字,但中文不一樣,在某些系統下有每個中文會占4個存儲單位,所以char(10)有可能容納2個或者4個中文。
而nchar的最大取值范圍是4000剛好是char的一半,為什么是4000呢?因為nchar采用了一種標准,這種標准的名字我就忘記了,它規定每個存儲單位是2個字節而並非char的每存儲單位1字節。所以nchar(10)最大可以容納10個數字或者英文字母或者標點符號,而中文就最大可以容納10個或者5個,視系統情況而定。
原文:https://blog.csdn.net/u012286682/article/details/46813499