欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
unsigned char 和 signed char的使用疑惑
[打印本頁]
作者:
WGL88
時間:
2019-6-3 09:47
標(biāo)題:
unsigned char 和 signed char的使用疑惑
各位大咖,我是小白,有個疑問請教下:
以下這個代碼中,i用的是signed char,可以改成用unsigned char嗎?為什么?我一直搞不懂什么時候該用unsigned char,什么時候該用signed char。謝謝!
void ShowNumber(unsigned long num)
{
signed char i;
unsigned char buf[6];
for(i=0; i<6; i++) //把長整型數(shù)轉(zhuǎn)換為6位十進(jìn)制的數(shù)組
{
buf[i] = num % 10;
num = num / 10;
}
for(i=5; i>=1; i--) //從最高位起,遇到0轉(zhuǎn)換為空格,遇到非0則退出循環(huán)
{
if(buf[i] == 0)
LedBuff[i] = 0xFF;
else
break;
}
for( ; i >= 0; i--) //剩余低位都如實轉(zhuǎn)換為數(shù)碼管顯示字符
{
LedBuff[i] = LedChar[ buf[i] ];
}
}
作者:
lele5211314
時間:
2019-6-3 13:20
一個是有符號的范圍是-128 - 127; 一個是無符號的 范圍是 0 - 255
作者:
suncat0504
時間:
2019-6-3 13:54
對于一個字節(jié)寬度的變量:
范圍介于0~255的,使用unsigned。
范圍介于-128~127的,使用signed。
作者:
木佑111
時間:
2019-6-3 16:13
unsigned:無符號的;unsigned char數(shù)據(jù)范圍為0~255;
signed:有符號的;signed char數(shù)據(jù)范圍是-128~127;
兩個的使用取決于你要使用的數(shù)據(jù)的范圍,當(dāng)要用到負(fù)數(shù)時且范圍不超過-128時,使用signed char;當(dāng)不用到負(fù)數(shù)且范圍不超過255時,使用unsigned char
作者:
幻劍心
時間:
2019-6-3 17:10
signed 是有符號的,也就是有負(fù)值。unsigned是無符號的,沒有負(fù)值。在某些情況下,for循環(huán)只能用有符號的。其實我覺得for循環(huán)中的循環(huán)變量最好用有符號數(shù) char不夠用用int,再不夠用long。除非必要,最好不要用unsigned的變量。給大家一個有趣的程序玩玩(是在VS2017上寫的,要換其它編譯軟件,只要把pch.h改成相應(yīng)的頭文件就行,一般好像是studio.h):
#include "pch.h"
#include <iostream>
using namespace std;
int main()
{
// unsigned char i;//i換成unsigned char型就會變成死循環(huán)
signed char i;
for (i = 7; i > 0; i--) {
cout << "i=" <<int(i) << endl;
i--;
}
}
作者:
黃不煩
時間:
2019-6-3 20:29
unsigned char的數(shù)據(jù)范圍是0~255,unsigned int數(shù)據(jù)范圍是–128~127存在負(fù)值。適用范圍不同,如果用到復(fù)數(shù)就用unsigned char
作者:
Dinosaur_
時間:
2019-6-3 22:01
unsigned是無符號的,unsigned char的數(shù)據(jù)范圍是0到255
signed是有符號的,signed char數(shù)據(jù)范圍是-128到127
具體根據(jù)你的使用來
作者:
cjm82
時間:
2019-6-4 01:13
unsigned char 的值是0-255
比如
unsigned char a = 0;
unsigned char b = 255;
a--;
b++;
執(zhí)行后,a為255, b為0.
如果用unsigned 類型的做循環(huán)判斷變量時,一定要注意不能以 a<0或者 a<=255作為條件,否則就會成死循環(huán).一般循環(huán)變量同時用作數(shù)組下標(biāo)時,容易出現(xiàn)這種錯誤.
作者:
yzwzfyz
時間:
2019-6-4 08:44
本帖最后由 yzwzfyz 于 2019-6-4 11:28 編輯
記住:在芯片內(nèi)部沒有正負(fù)之分,它就是個8位二進(jìn)制數(shù),最小00000000B=0,最大11111111B=255,
如果必須表達(dá)負(fù)數(shù),怎么辦?芯片內(nèi)部沒有“負(fù)號”,所以就定義用8位中的首位作為“負(fù)號”,且“1”=負(fù),“0”表示正,這樣就形成所謂的有符號數(shù)了:
正數(shù)范圍0-0000000B=0,0-1111111B=127,
自然負(fù)數(shù)的范圍就是:1-0000000B至1-1111111B,
負(fù)數(shù)有兩種表示方案:
第一種:1-0000000B=-0=0、1-1111111B=-127;好處是直觀,缺點-0=0,與0-0000000B重復(fù),浪費了。其表達(dá)范圍只有255個數(shù)(-127至+127)。
第二種:1-0000000B=-128、1-1111111B=-1;好處是表達(dá)范圍比第一種多出一個,256個數(shù)(-128至+127)。
第二種是標(biāo)準(zhǔn)表達(dá)方式!
但不要認(rèn)為第一種就是錯的,在某此場合下它還是比較實用的。這要看你最終是如果翻譯。不建議采用第一種,至少目前C不支持它,只能在匯編在應(yīng)用。
作者:
WGL88
時間:
2019-6-5 09:02
謝謝各位!
作者:
somesun
時間:
2019-6-5 10:03
unsigned是無符號的,singed是有符號的
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1