最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于C語(yǔ)言char與unsigned char的區(qū)別介紹

 更新時(shí)間:2013年04月19日 09:56:17   作者:  
本篇文章小編為大家介紹,基于C語(yǔ)言char與unsigned char的區(qū)別介紹。需要的朋友參考下

在C中,默認(rèn)的基礎(chǔ)數(shù)據(jù)類型均為signed,現(xiàn)在我們以char為例,說(shuō)明(signed) char與unsigned char之間的區(qū)別。

首先在內(nèi)存中,char與unsigned char沒有什么不同,都是一個(gè)字節(jié),唯一的區(qū)別是,char的最高位為符號(hào)位,因此char能表示-127~127,unsigned char沒有符號(hào)位,因此能表示0~255,這個(gè)好理解,8個(gè)bit,最多256種情況,因此無(wú)論如何都能表示256個(gè)數(shù)字。

在實(shí)際使用過(guò)程種有什么區(qū)別呢?主要是符號(hào)位,但是在普通的賦值,讀寫文件和網(wǎng)絡(luò)字節(jié)流都沒什么區(qū)別,反正就是一個(gè)字節(jié),不管最高位是什么,最終的讀取結(jié)果都一樣,只是你怎么理解最高位而已,在屏幕上面的顯示可能不一樣。

二者的最大區(qū)別是:但是我們卻發(fā)現(xiàn)在表示byte時(shí),都用unsigned char,這是為什么呢?首先我們通常意義上理解,byte沒有什么符號(hào)位之說(shuō),更重要的是如果將byte的值賦給int,long等數(shù)據(jù)類型時(shí),系統(tǒng)會(huì)做一些額外的工作。如果是char,那么系統(tǒng)認(rèn)為最高位是符號(hào)位,而int可能是16或者32位,那么會(huì)對(duì)最高位進(jìn)行擴(kuò)展(注意,賦給unsigned int也會(huì)擴(kuò)展)而如果是unsigned char,那么不會(huì)擴(kuò)展。最高位若為0時(shí),二者沒有區(qū)別,若為1時(shí),則有區(qū)別了。同理可以推導(dǎo)到其它的類型,比如short, unsigned short,等等。

具體可以通過(guò)下面的小例子看看其區(qū)別

  include <stdio.h>

  void f(unsigned char v)
  {
    char c = v;
    unsigned char uc = v;
    unsigned int a = c, b = uc;
    int i = c, j = uc;
    printf("----------------\n");
    printf("%%c: %c, %c\n", c, uc);
    printf("%%X: %X, %X\n", c, uc);
    printf("%%u: %u, %u\n", a, b);
    printf("%%d: %d, %d\n", i, j);
  }
  

  int main(int argc, char *argv[])
  {
    f(0x80);
    f(0x7F);
    return 0;
  }


結(jié)果輸出如下:
 

結(jié)果分析:

對(duì)于(signed)char來(lái)說(shuō),0x80用二進(jìn)制表示為1000 0000,當(dāng)它作為char賦值給unsigned int或 int 時(shí),系統(tǒng)認(rèn)為最高位是符號(hào)位,會(huì)對(duì)最高位進(jìn)行擴(kuò)展。而0x7F用二進(jìn)制表示為0111 1111,最高位為0,不會(huì)擴(kuò)展。

對(duì)于unsigned char來(lái)說(shuō),不管最高位是0,還是1,都不會(huì)做擴(kuò)展。

相關(guān)文章

  • C++實(shí)現(xiàn)模擬shell命令行(代碼解析)

    C++實(shí)現(xiàn)模擬shell命令行(代碼解析)

    這篇文章主要介紹了C++實(shí)現(xiàn)模擬shell命令行,本文通過(guò)實(shí)例代碼進(jìn)行命令行解析,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • C語(yǔ)言練習(xí)題:求1到10的階乘之和簡(jiǎn)單實(shí)例

    C語(yǔ)言練習(xí)題:求1到10的階乘之和簡(jiǎn)單實(shí)例

    下面小編就為大家?guī)?lái)一篇C語(yǔ)言練習(xí)題:求1到10的階乘之和簡(jiǎn)單實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-05-05
  • C語(yǔ)言詳細(xì)解析有符號(hào)數(shù)與無(wú)符號(hào)數(shù)的表示

    C語(yǔ)言詳細(xì)解析有符號(hào)數(shù)與無(wú)符號(hào)數(shù)的表示

    我們知道,在C語(yǔ)言中存在無(wú)符號(hào)數(shù)和有符號(hào)數(shù),但是對(duì)于計(jì)算機(jī)而言,其本身并不區(qū)別有符號(hào)數(shù)和無(wú)符號(hào)數(shù),因?yàn)樵谟?jì)算機(jī)里面都是O或者1,但是在我們的實(shí)際使用中有時(shí)候需要使用有符號(hào)數(shù)來(lái)表示一個(gè)整數(shù),因此我們規(guī)定,當(dāng)最高位為1的時(shí),表示為負(fù)數(shù),最高位為0時(shí),表示為正數(shù)
    2022-04-04
  • C++讀寫配置項(xiàng)的基本操作

    C++讀寫配置項(xiàng)的基本操作

    這篇文章主要介紹了C++讀寫配置項(xiàng)的基本操作,幫助大家更好的理解和學(xué)習(xí)c++,感興趣的朋友可以了解下
    2021-01-01
  • 從C語(yǔ)言過(guò)渡到C++之引用(別名)

    從C語(yǔ)言過(guò)渡到C++之引用(別名)

    本文給大家講解的是在從C語(yǔ)言過(guò)渡到C++中的引用的區(qū)別及簡(jiǎn)單示例,有需要的小伙伴可以參考下
    2017-07-07
  • Qt學(xué)習(xí)之容器類的使用教程詳解

    Qt學(xué)習(xí)之容器類的使用教程詳解

    Qt提供了多個(gè)基于模板的容器類,這些類可以用于存儲(chǔ)指定類型的數(shù)據(jù)項(xiàng)。本文主要介紹了Qt常用容器類的使用,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-12-12
  • C++字符串拼接效率對(duì)比(+=、append、stringstream、sprintf)

    C++字符串拼接效率對(duì)比(+=、append、stringstream、sprintf)

    這篇文章主要介紹了C++字符串拼接效率對(duì)比(+=、append、stringstream、sprintf),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • C/C++實(shí)現(xiàn)線性單鏈表的示例代碼

    C/C++實(shí)現(xiàn)線性單鏈表的示例代碼

    使用鏈存儲(chǔ)結(jié)構(gòu)的線性存儲(chǔ)結(jié)構(gòu)為線性單鏈表,本文將分別利用C語(yǔ)言和C++實(shí)現(xiàn)線性單鏈表,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-05-05
  • C語(yǔ)言根據(jù)協(xié)議分割獲取字符串單元的實(shí)現(xiàn)代碼

    C語(yǔ)言根據(jù)協(xié)議分割獲取字符串單元的實(shí)現(xiàn)代碼

    今天小編就為大家分享一篇關(guān)于C語(yǔ)言根據(jù)協(xié)議分割獲取字符串單元的實(shí)現(xiàn)代碼,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • C++中的基類和派生類構(gòu)造函數(shù)示例詳解

    C++中的基類和派生類構(gòu)造函數(shù)示例詳解

    這篇文章主要介紹了C++的基類和派生類構(gòu)造函數(shù),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09

最新評(píng)論

成安县| 延吉市| 建德市| 富裕县| 南平市| 龙里县| 宜川县| 凤庆县| 水富县| 云南省| 大理市| 龙泉市| 阳城县| 紫阳县| 马边| 福清市| 临安市| 漾濞| 安化县| 龙陵县| 依兰县| 策勒县| 广南县| 东海县| 梁平县| 抚顺县| 砚山县| 邢台市| 禹城市| 滨海县| 南溪县| 融水| 且末县| 手机| 靖宇县| 平舆县| 普宁市| 涿鹿县| 根河市| 平乐县| 包头市|