久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
unsigned char 和 signed char的使用疑惑
[打印本頁(yè)]
作者:
WGL88
時(shí)間:
2019-6-3 09:47
標(biāo)題:
unsigned char 和 signed char的使用疑惑
各位大咖,我是小白,有個(gè)疑問(wèn)請(qǐng)教下:
以下這個(gè)代碼中,i用的是signed char,可以改成用unsigned char嗎?為什么?我一直搞不懂什么時(shí)候該用unsigned char,什么時(shí)候該用signed char。謝謝!
void ShowNumber(unsigned long num)
{
signed char i;
unsigned char buf[6];
for(i=0; i<6; i++) //把長(zhǎng)整型數(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--) //剩余低位都如實(shí)轉(zhuǎn)換為數(shù)碼管顯示字符
{
LedBuff[i] = LedChar[ buf[i] ];
}
}
作者:
lele5211314
時(shí)間:
2019-6-3 13:20
一個(gè)是有符號(hào)的范圍是-128 - 127; 一個(gè)是無(wú)符號(hào)的 范圍是 0 - 255
作者:
suncat0504
時(shí)間:
2019-6-3 13:54
對(duì)于一個(gè)字節(jié)寬度的變量:
范圍介于0~255的,使用unsigned。
范圍介于-128~127的,使用signed。
作者:
木佑111
時(shí)間:
2019-6-3 16:13
unsigned:無(wú)符號(hào)的;unsigned char數(shù)據(jù)范圍為0~255;
signed:有符號(hào)的;signed char數(shù)據(jù)范圍是-128~127;
兩個(gè)的使用取決于你要使用的數(shù)據(jù)的范圍,當(dāng)要用到負(fù)數(shù)時(shí)且范圍不超過(guò)-128時(shí),使用signed char;當(dāng)不用到負(fù)數(shù)且范圍不超過(guò)255時(shí),使用unsigned char
作者:
幻劍心
時(shí)間:
2019-6-3 17:10
signed 是有符號(hào)的,也就是有負(fù)值。unsigned是無(wú)符號(hào)的,沒(méi)有負(fù)值。在某些情況下,for循環(huán)只能用有符號(hào)的。其實(shí)我覺(jué)得for循環(huán)中的循環(huán)變量最好用有符號(hào)數(shù) char不夠用用int,再不夠用long。除非必要,最好不要用unsigned的變量。給大家一個(gè)有趣的程序玩玩(是在VS2017上寫(xiě)的,要換其它編譯軟件,只要把pch.h改成相應(yīng)的頭文件就行,一般好像是studio.h):
#include "pch.h"
#include <iostream>
using namespace std;
int main()
{
// unsigned char i;//i換成unsigned char型就會(huì)變成死循環(huán)
signed char i;
for (i = 7; i > 0; i--) {
cout << "i=" <<int(i) << endl;
i--;
}
}
作者:
黃不煩
時(shí)間:
2019-6-3 20:29
unsigned char的數(shù)據(jù)范圍是0~255,unsigned int數(shù)據(jù)范圍是–128~127存在負(fù)值。適用范圍不同,如果用到復(fù)數(shù)就用unsigned char
作者:
Dinosaur_
時(shí)間:
2019-6-3 22:01
unsigned是無(wú)符號(hào)的,unsigned char的數(shù)據(jù)范圍是0到255
signed是有符號(hào)的,signed char數(shù)據(jù)范圍是-128到127
具體根據(jù)你的使用來(lái)
作者:
cjm82
時(shí)間:
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)判斷變量時(shí),一定要注意不能以 a<0或者 a<=255作為條件,否則就會(huì)成死循環(huán).一般循環(huán)變量同時(shí)用作數(shù)組下標(biāo)時(shí),容易出現(xiàn)這種錯(cuò)誤.
作者:
yzwzfyz
時(shí)間:
2019-6-4 08:44
本帖最后由 yzwzfyz 于 2019-6-4 11:28 編輯
記住:在芯片內(nèi)部沒(méi)有正負(fù)之分,它就是個(gè)8位二進(jìn)制數(shù),最小00000000B=0,最大11111111B=255,
如果必須表達(dá)負(fù)數(shù),怎么辦?芯片內(nèi)部沒(méi)有“負(fù)號(hào)”,所以就定義用8位中的首位作為“負(fù)號(hào)”,且“1”=負(fù),“0”表示正,這樣就形成所謂的有符號(hào)數(shù)了:
正數(shù)范圍0-0000000B=0,0-1111111B=127,
自然負(fù)數(shù)的范圍就是:1-0000000B至1-1111111B,
負(fù)數(shù)有兩種表示方案:
第一種:1-0000000B=-0=0、1-1111111B=-127;好處是直觀,缺點(diǎn)-0=0,與0-0000000B重復(fù),浪費(fèi)了。其表達(dá)范圍只有255個(gè)數(shù)(-127至+127)。
第二種:1-0000000B=-128、1-1111111B=-1;好處是表達(dá)范圍比第一種多出一個(gè),256個(gè)數(shù)(-128至+127)。
第二種是標(biāo)準(zhǔn)表達(dá)方式!
但不要認(rèn)為第一種就是錯(cuò)的,在某此場(chǎng)合下它還是比較實(shí)用的。這要看你最終是如果翻譯。不建議采用第一種,至少目前C不支持它,只能在匯編在應(yīng)用。
作者:
WGL88
時(shí)間:
2019-6-5 09:02
謝謝各位!
作者:
somesun
時(shí)間:
2019-6-5 10:03
unsigned是無(wú)符號(hào)的,singed是有符號(hào)的
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
免费在线观看黄色av
|
天天干天天操
|
男女性毛片
|
中文字幕视频在线看5
|
少妇一级淫片免费放播放
|
视频一区二区中文字幕
|
亚洲美女在线视频
|
日韩伦理一区二区三区
|
久久精品国产亚洲一区二区三区
|
日本福利视频
|
天天干天天想
|
九九九久久国产免费
|
天堂在线免费视频
|
黄网免费
|
成人av资源在线
|
成人自拍av
|
亚洲精品v
|
青草青草久热精品视频在线观看
|
亚洲视频一区在线
|
欧美久久一区二区三区
|
www.av在线
|
久久久久久91
|
精品国产区
|
亚洲欧美一区二区三区国产精品
|
中文字幕一区二区三区四区五区
|
日本黄色片免费在线观看
|
一级片网站视频
|
性生生活大片免费看视频
|
色婷婷综合久久久中字幕精品久久
|
免费av一区二区三区
|
av一二三四
|
国产成人精品免高潮在线观看
|
美女爽到呻吟久久久久
|
国产农村一级国产农村
|
日韩一区在线播放
|
精品亚洲一区二区三区
|
久久久精彩视频
|
一级黄色影片在线观看
|
欧美一级久久精品
|
国产成人免费观看
|
91在线免费视频
|