第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

c語言中unsigned char的意義何在

c語言中unsigned char的意義何在

C
牛魔王的故事 2018-08-10 17:12:55
C語言中字符變量代表一個ASCII字符,ASCII碼的范圍在0-127即便是無符號,也是0-255,然而128-255之間代表什么字符呢?既然無法代表字符,那么unsigned char又有什么意義呢?求解,謝謝諸位
查看完整描述

3 回答

?
DIEA

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超2個贊

首先要糾正一個錯誤觀念,char或者unsigned char本身和ASCII從來就沒有什么對應(yīng)關(guān)系。char就是一個單字節(jié)有符號整數(shù),unsigned char就是一個單字節(jié)無符號整數(shù)。這和shortunsigned short以及long longunsigned long long之間的關(guān)系是類似的。
unsigned char存在的必要性,個人覺得下面這個例子可以從一個側(cè)面來表現(xiàn):

    char m = 0xa5;
    unsigned char n = 0xa5;
    printf("0x%02hhx\n", m >> 1);
    printf("0x%02hhx\n", n >> 1);

這個片段的運(yùn)行結(jié)果將是

0xd20x52

而至于ASCII,以我個人的經(jīng)驗(yàn),只有在使用類似putcharputsprintf時,才會將任何以整數(shù)形式表示的數(shù)字轉(zhuǎn)換成ASCII(或其他)編碼對應(yīng)的字符,輸出在標(biāo)準(zhǔn)輸出中。例如:

    long long a = 0x38;    printf("%c\n", a);

這樣的代碼片段也是合法的,且出輸出一個8。

另外,ASCII也是有多種擴(kuò)展的,在使用擴(kuò)展ASCII時,以個人的經(jīng)驗(yàn),charunsigned char并無明顯區(qū)別。如:

    char m = 0xa5;    unsigned char n = 0xa5;    printf("%c\n", m);    printf("%c\n", n);

都將輸出字符。


查看完整回答
反對 回復(fù) 2018-08-12
?
不負(fù)相思意

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超10個贊

首先ascii的范圍顯然不在0-127 小寫a已經(jīng)是 0x97 了 <- 顯然記錯了

查看完整回答
反對 回復(fù) 2018-08-12
  • 3 回答
  • 0 關(guān)注
  • 5058 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號