關(guān)于unsigned char左移8位,unsigned char這個問題很多朋友還不知道,今天小六來為大家解答以上的問題,現(xiàn)在讓我們一起來看看吧!
1、unsigned char是無符號字節(jié)型,char類型變量的大小通常為1個字節(jié)(1字節(jié)=8個位),且屬于整型。
2、整型的每一種都有無符號(unsigned)和有符號(signed)兩種類型(float和double總是帶符號的),在默認情況下聲明的整型變量都是有符號的類型(char有點特別),如果需聲明無符號類型的話就需要在類型前加上unsigned。
3、無符號版本和有符號版本的區(qū)別就是無符號類型能保存2倍于有符號類型的數(shù)據(jù),比如16位系統(tǒng)中一個int能存儲的數(shù)據(jù)的范圍為-32768~32767,而unsigned能存儲的數(shù)據(jù)范圍則是0~65535。
4、同樣,在32位系統(tǒng)中一個char類型一般為8個bit,所以能存儲的數(shù)據(jù)范圍為-128~127,而unsigned char則是0~255,字符型所存儲的數(shù)據(jù)是用來表示字符的,例如ASCⅡ或Unicode。
5、關(guān)于char的符號(選自thinking in C++ 2nd vol1):signed is the default and is only necessary with char; char may or may not default to signed. By specifying signed char, you force the sign bit to be used.譯:有符號類型是默認(指的是對于其他整型來說)的類型并且僅對于char來說才是必須的。
6、char有可能是signed也有可能是unsigned(我想這可能取決于編譯器或具體實現(xiàn))。
7、但通過顯式地指定一個char為signed,你就迫使其成為有符號的字符型(水平太爛譯的不好請見諒)。
本文分享完畢,希望對大家有所幫助。
標簽:
免責聲明:本文由用戶上傳,如有侵權(quán)請聯(lián)系刪除!