久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2986|回復: 9
打印 上一主題 下一主題
收起左側

關于C51單片機的位操作的問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:69038 發表于 2022-12-7 09:42 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
////16位:
  int  j ;
while (i<16)
   {
    j=1<<i;
    i++;
  }
//這個操作正常,j從位0到位15,依次變為1;

  long  j ;
while (i<32)
   {
    j=1<<i;
    i++;
  }
//這個操作就不對,i=15之后,j全是錯的;


咋整?

如果要操作64位呢?該如何定義一個64位(48位)的變量?




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

使用道具 舉報

沙發
ID:258566 發表于 2022-12-7 18:25 | 只看該作者
#include <REG52.H>

void main()
{ unsigned long  j ;
        unsigned char i;
while (i<32)
   {
    j=(unsigned long)1<<i;
    i++;
  }
while(1);

}
常數的默認類型,指定一下,就可以了。
回復

使用道具 舉報

板凳
ID:1056354 發表于 2022-12-7 23:10 | 只看該作者
#include <REG52.H>

void main()
{ unsigned long  j ;
        unsigned char i;
while (i<32)
   {
    j=(unsigned long)1<<i;
    i++;
  }
while(1);

}
常數的默認類型,指定一下,就可以了。
回復

使用道具 舉報

地板
ID:123289 發表于 2022-12-8 10:19 | 只看該作者
要保證被移位的對相,有足夠的位數給你移動,才是合理的。
回復

使用道具 舉報

5#
ID:77589 發表于 2022-12-8 10:43 | 只看該作者
本帖最后由 Longan.Wang 于 2022-12-8 11:01 編輯

你那個第一次循環,左移一位,第二次循環,左移二位,,第三次循環,左移三位......
你覺得最后一其左移了多少位???????(1 + 2 + 3 + ...... + n)
這樣寫才對:
int i = 0;
int j = 1 ;
while (i<16) {
    j <<= 1;      // 每次只左移一位
    i++;
}
// 到此一共左移16位
同樣
int i = 0;
long  j  = 1;
while (i<32) {
    j <<= 1;      // 每次只左移一位
    i++;
}
// 到此一共左移32位
回復

使用道具 舉報

6#
ID:69038 發表于 2022-12-8 10:46 | 只看該作者

真的哎~~
那64位變量又如何定義、操作呢?
回復

使用道具 舉報

7#
ID:1034262 發表于 2022-12-8 11:54 | 只看該作者
首先,C51不支持64位的變量。
其次,你移位32位的,卻使用16位的變量,所以超過15位就會出錯。改成下面的就不會錯。
提醒一下,一般用于移位操作的話,最好使用無符號變量。
unsigned long  j ;
unsigned char i;
while (i<32)
   {
        j = (unsgned long)1 << i;
        i++;
  }
回復

使用道具 舉報

8#
ID:69038 發表于 2022-12-8 13:13 | 只看該作者
Longan.Wang 發表于 2022-12-8 10:43
你那個第一次循環,左移一位,第二次循環,左移二位,,第三次循環,左移三位......
你覺得最后一其左移了 ...

這個不是移位,是直接賦值。
j=1<<i;//把變量“j”的第“i”位設置為1。


     
回復

使用道具 舉報

9#
ID:883242 發表于 2022-12-9 18:47 | 只看該作者
很簡單的問題,C語言里面常量默認是int類型的,C51的int是16位,1是常量,移位到16次就錯了,解決方案板凳發言是對的,把常量類型強制轉換就行了。
回復

使用道具 舉報

10#
ID:939553 發表于 2022-12-10 12:30 | 只看該作者
j=1ul<<i;
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕 国产 | 国产精品视频不卡 | 91高清在线观看 | 久久免费电影 | 亚洲精品乱码久久久久v最新版 | 午夜私人影院 | 国产一级毛片视频 | 国产精品久久久久久久久久99 | 国产精品毛片无码 | 国产成人精品999在线观看 | 成人在线视频观看 | 成人午夜视频在线观看 | 国产福利在线 | 国产精品久久久久久久久免费樱桃 | 欧美日韩精品一区二区天天拍 | 国产精品性做久久久久久 | 亚洲一区二区三区在线观看免费 | 欧美久久久久久久久 | 97精品超碰一区二区三区 | 亚洲成人中文字幕 | 成人亚洲精品 | 91中文字幕在线观看 | 黄色免费在线观看网站 | 在线观看亚洲欧美 | 精产国产伦理一二三区 | 精品一区二区在线视频 | 欧美精品在线一区 | 欧美lesbianxxxxhd视频社区 | 91亚洲一区 | 99精品国产一区二区三区 | 亚洲成人免费视频在线 | 精品一区二区三区在线观看 | 97精品国产 | 久久免费香蕉视频 | 国产真实乱对白精彩久久小说 | 日本 欧美 三级 高清 视频 | 亚洲精品国产偷自在线观看 | 日本中文在线 | 久久久资源 | 久久久久久九九九九 | 日日夜夜精品免费视频 |