找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3953|回復(fù): 10
打印 上一主題 下一主題
收起左側(cè)

在寫一個程序時發(fā)現(xiàn),數(shù)據(jù)低八位會發(fā)生丟失,求大神指導(dǎo)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:81678 發(fā)表于 2015-6-2 16:07 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
先貼代碼

void main()
{
        unsigned int a=0x1c00;
        unsigned char b;
        (unsigned int)b=a;
        b=b>>8;
        uart_init();
        while(1)
        {
                TI=1;
                ES=0;
                printf("%x \r\n",b);
                printf("%d \r\n",b);
                Delay(10000);
        }
       
}


我在寫其他程序時出現(xiàn)了數(shù)據(jù)丟失問題,就寫了這個小程序測試了下,果然如此。。。。。
求助下, 怎么樣讓數(shù)據(jù)右移八位不丟失啊,輸出b=0x1c;

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:74784 發(fā)表于 2015-6-2 20:15 | 只看該作者
更換單片機(jī)芯片~~~~~~~~~~

評分

參與人數(shù) 1黑幣 +35 收起 理由
admin + 35 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

板凳
ID:7485 發(fā)表于 2015-6-3 22:01 | 只看該作者
在匯編中,   RRC 指令功能:累加器內(nèi)容連同進(jìn)位標(biāo)志位(c)循環(huán)右移一位(C進(jìn)入最高位,最低位進(jìn)入C,也就是9位圓周循環(huán))
    操作內(nèi)容:      A7←(C)      An←(An+1)    C←(A0)       (n=0~6)
  (RLC  類似)

在C51中操作符右移為">>",每執(zhí)行一次右移指令,操作數(shù)最高低移入CY,CY中本來的數(shù)丟失,最高位補(bǔ)0,其他位依次向右移動1位。左移指令類同。也就是說不采取其他措施,移出去的一位就丟失了。 類似于匯編的 “RR”。C語言中沒有單獨的 類似于"RLC"或"RRC"的語句。
所以如果  b=b>>8 ,高8位進(jìn)入低8位,高8位補(bǔ)8個”0“,低8位就丟失了。(假設(shè)b為16位數(shù)據(jù))。

評分

參與人數(shù) 1黑幣 +35 收起 理由
admin + 35 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

地板
ID:81808 發(fā)表于 2015-6-4 08:34 來自手機(jī) | 只看該作者
太明顯了,b改成uint就好了,51里面搞強(qiáng)制類型轉(zhuǎn)換不是很推薦
回復(fù)

使用道具 舉報

5#
ID:81678 發(fā)表于 2015-6-4 19:17 | 只看該作者
lxa0 發(fā)表于 2015-6-2 20:15
更換單片機(jī)芯片~~~~~~~~~~

不用吧,設(shè)置了個中間變量,好了。。。。。。。
回復(fù)

使用道具 舉報

6#
ID:81678 發(fā)表于 2015-6-4 19:17 | 只看該作者
ahshmj 發(fā)表于 2015-6-3 22:01
在匯編中,   RRC 指令功能:累加器內(nèi)容連同進(jìn)位標(biāo)志位(c)循環(huán)右移一位(C進(jìn)入最高位,最低位進(jìn)入C,也就 ...

回復(fù)

使用道具 舉報

7#
ID:81678 發(fā)表于 2015-6-4 19:18 | 只看該作者
yanjibao 發(fā)表于 2015-6-4 08:34
太明顯了,b改成uint就好了,51里面搞強(qiáng)制類型轉(zhuǎn)換不是很推薦

嗯,改了,好了,謝了啊。。。。。。。。。
回復(fù)

使用道具 舉報

8#
ID:82058 發(fā)表于 2015-6-4 20:39 | 只看該作者
建議多看基礎(chǔ)

評分

參與人數(shù) 1黑幣 +35 收起 理由
admin + 35 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

9#
ID:82090 發(fā)表于 2015-6-5 10:45 | 只看該作者
b改成uint應(yīng)該可以

評分

參與人數(shù) 1黑幣 +35 收起 理由
admin + 35 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表