decimal對應的java類型 使用MySQL的時候bit和tinyint類型用的多嗎?
使用MySQL的時候bit和tinyint類型用的多嗎?我很高興回答您的問題:bit和tinyint類型肯定使用得更多。從數(shù)字類型概述:1,位[(m)]位字段類型。如果省略,默認值為1到64位。此數(shù)據(jù)
使用MySQL的時候bit和tinyint類型用的多嗎?
我很高興回答您的問題:
bit和tinyint類型肯定使用得更多。
從數(shù)字類型概述:
1,位[(m)
]位字段類型。如果省略,默認值為1到64位。
此數(shù)據(jù)類型已添加到MyISAM的MySQL 5.0.3中,并在5.0.5中擴展到memory、InnoDB、BDB和ndbcluster。在5.0.3之前,bit是tinyint(1)的同義詞。
這是一種數(shù)字類型,存儲小數(shù)。它通常對應于編輯語言中的小字典或枚舉類型。它可以節(jié)省空間,避免存儲超出范圍的值。2Tinyint[(m)][unsigned][zerofill
]是一個非常小的整數(shù)。符號范圍是-128到127。無符號范圍是0到255。
例如,位(1)直接對應于Java語言的布爾類型true和false。用于保存狀態(tài)時,一個字段最多可以保存64個狀態(tài)。
此外,請考慮這一點:
1,bool,Boolean
這些類型是tinyint(1)的同義詞。零被認為是錯誤的。非零值被認為是真的。
總之,在我的項目中,我通常使用位(1)來存儲布爾值,因為它只占用一個字節(jié)。當然,我也可以使用int,但是會造成資源的浪費。
建議對枚舉類使用tinyint。當然,enum也可以使用,但是它的可移植性不是很好。
Java如何實現(xiàn)byte和bit之間的互轉?
首先,我們需要了解Java中沒有位數(shù)據(jù)類型,所以如果您想表示位,可以使用byte[]方法
1 byte=8 bit
只要您提取每個位,就需要將其向右移動到右邊的第一位,并在和1中執(zhí)行and運算,這樣除了所需位之外,其他都是0。它的二進制(1,0)正好是數(shù)字1,0;
因此我們可以將它封裝為://byte to bit
byte[]temp=新字節(jié)[8
]for(int i=7 i>=0 i--){
temp[i]=(byte)((A>> i)&;1) ]}
]return temp
}
//位到字節(jié)
公共靜態(tài)字節(jié)位(byte[]a){
byte temp=(byte)0
For(int i=0 i< bits i){
temp=temp | a[i]<< i]}]return temp]}
]希望能對您有所幫助,謝謝。