找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

C語言數(shù)組元素讀取問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:365235 發(fā)表于 2020-4-27 22:47 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
假設定義一個數(shù)組,里面是8個二進制數(shù),如下所示:unsigned char a[8]={0,1,1,1,1,1,1,1};這個里面的二進制數(shù)組合起來就成十六進制數(shù)0x7f, 那么如何可以將數(shù)組元素轉變成十六進制數(shù)0x7f呢?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:540236 發(fā)表于 2020-4-27 23:30 | 只看該作者
hex = a[0]*128+a[1]*64+a[2]*32+a[3]*16+a[4]*8+a[5]*4+a[6]*2+a[7]*1
回復

使用道具 舉報

板凳
ID:624817 發(fā)表于 2020-4-28 01:31 | 只看該作者
首先數(shù)組unsigned char a[8]里面的元素不是二進制數(shù),實際為a[8]={0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01}
那么數(shù)組a[8]里面每個元素的二進制值為
a[0] = 00000000B
a[1] = 00000001B
a[2] = 00000001B
a[3] = 00000001B....由此類推
如果非要將他們組合成0x7F
(不知道你這樣做有什么用途,感覺沒什么意義,但為了解答你下面演示一下)
可以參看下面代碼,
u8 m;
for(i=0;i<8;i++)
{
    m|=a[i]<<(7-i);
  }
回復

使用道具 舉報

地板
ID:592807 發(fā)表于 2020-4-28 08:36 | 只看該作者
Jiam 發(fā)表于 2020-4-28 01:31
首先數(shù)組unsigned char a[8]里面的元素不是二進制數(shù),實際為a[8]={0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x0 ...

m = 0;加上,
回復

使用道具 舉報

5#
ID:592807 發(fā)表于 2020-4-28 08:43 | 只看該作者
  1. u8 m;
  2. u8 i;
  3. m = 0;
  4. for(i = 0;i< 8;i++)
  5. {
  6. m <<= 1;
  7. if(a[i] ==0);
  8. else
  9. m+=1;
  10. }
復制代碼


方法很多
回復

使用道具 舉報

6#
ID:188773 發(fā)表于 2020-4-28 09:13 | 只看該作者
給幾個位操作函數(shù)參考,先將數(shù)組中的值提取出來,然后賦值給對應的16進制數(shù)的對應位。
#define bitSet(Y,X) Y |= (1 << (X-1))                // Y的X位置1
#define bitClear(Y,X) Y &= ~(1 << (X-1))              // Y的X位置0
#define bitReverse(Y,X) Y ^= (1 << (X-1))      // Y的x位取反
#define bitRead(Y,X) ((Y >> (X-1))&1)                  // 讀取 Y 的X位,返回值1、0
回復

使用道具 舉報

7#
ID:624817 發(fā)表于 2020-4-28 11:43 | 只看該作者

我也是小白,可以解釋一下為什么等于0呢
回復

使用道具 舉報

8#
ID:267932 發(fā)表于 2020-4-28 18:12 | 只看該作者
Jiam 發(fā)表于 2020-4-28 11:43
我也是小白,可以解釋一下為什么等于0呢

變量的初始化,形式也比較簡單:

int a = 5;

這就是最簡單的初始化語句了,如果是下面的語句:

int a;

那么知道變量a的默認初始值是多少嗎?答案是不確定。當然不是說a的默認值是任意值,而是說變量a定義的位置、操作系統(tǒng)以及和使用的編譯器相關。

評分

參與人數(shù) 1黑幣 +5 收起 理由
黃youhui + 5 贊一個!

查看全部評分

回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表