最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

單片機(jī)應(yīng)用實(shí)踐篇之單總線上單個DS18B20的溫度讀取顯示編程(基于數(shù)碼管...

2023-07-12 22:31 作者:無數(shù)碎片尋你  | 我要投稿

我找到規(guī)律了,我發(fā)現(xiàn), 正數(shù)是沒問題的,然后負(fù)數(shù),如果這個負(fù)數(shù)是整數(shù)的話, 整數(shù)部分,就是根據(jù)補(bǔ)碼的規(guī)則去求的,取反,然后加一,

但是如果負(fù)數(shù),并且后面帶有小數(shù)的話,整數(shù)部分就是反碼, 不是補(bǔ)碼了,可能需要區(qū)分一下,我也沒手冊,我是看老師截圖,換算得到的結(jié)論,并且我驗(yàn)算了,可以實(shí)現(xiàn),總結(jié)一下,正數(shù),是本身,沒問題,負(fù)數(shù)的話,如果小數(shù)點(diǎn)后面有數(shù)字,那么整數(shù)部分,是原碼的反碼,不是補(bǔ)碼,小數(shù)點(diǎn)后面是0的話,那整數(shù)部分就是補(bǔ)碼,取反加一就可以了

//xiao是小數(shù)部分,就是區(qū)分,當(dāng)負(fù)數(shù)的情況下,補(bǔ)碼和反碼

if(xiao == 0x00)

{

zheng = ((~dat)+1) ;

}

else

{

zheng = ((~dat) ) ;

}

完整的處理函數(shù)

/處理整數(shù)部分


unsigned char chuli(int dat, unsigned char *str,int xiao)

{

unsigned char i = 0;

unsigned char len = 0;

unsigned char buf[7];

//提取符號

unsigned char sign;

unsigned char zheng;

sign = dat >> 7; //將整數(shù)部分移走,此時sign代表符號位

//然后開始提取整數(shù)部分

zheng = dat & 0x007F; //消除了符號位

//此時zheng 有可能是負(fù)數(shù)(補(bǔ)碼),也有可能是整數(shù),所以需要判斷

if(sign > 0)

{

*str++ = '-';

len++;

//如果是負(fù)數(shù), 說明是補(bǔ)碼, 所以需要還原成源碼

//現(xiàn)在我們只需要 整數(shù)取反, 并且保留七位整數(shù),然后加一即可

// zheng = ((~dat) & 0x07F +1) ;

if(xiao == 0x00)

{

zheng = ((~dat)+1) ;

}

else

{

zheng = ((~dat) ) ;

}

}



//下面把整數(shù)填進(jìn)數(shù)組

do

{

buf[i++] = zheng %10 + '0'; //dat%10 + 0x30; buf[0] = '8' buf[1] = '7'

zheng /= 10;

}while(zheng > 0); //每取到一位數(shù), 就截取掉

len += i;

while(i-- > 0)

{

*str++ = buf[i];

}

*str = '\0';

return len;

}


單片機(jī)應(yīng)用實(shí)踐篇之單總線上單個DS18B20的溫度讀取顯示編程(基于數(shù)碼管...的評論 (共 條)

分享到微博請遵守國家法律
江阴市| 竹溪县| 梅河口市| 罗城| 邯郸市| 杨浦区| 绍兴市| 福州市| 铁力市| 正镶白旗| 南澳县| 抚州市| 宁波市| 平陆县| 尉犁县| 布拖县| 泸溪县| 安乡县| 静安区| 印江| 金堂县| 青州市| 呼和浩特市| 册亨县| 汤阴县| 壶关县| 陆丰市| 怀来县| 田林县| 舒兰市| 修文县| 桐乡市| 盈江县| 穆棱市| 芜湖市| 拉孜县| 北票市| 太康县| 黑水县| 青冈县| 绥宁县|