欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: C語言如何將一個(gè)十六進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)并存放進(jìn)一個(gè)數(shù)組中 [打印本頁]

作者: Awaken    時(shí)間: 2020-4-30 22:18
標(biāo)題: C語言如何將一個(gè)十六進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)并存放進(jìn)一個(gè)數(shù)組中
假設(shè)定義一個(gè)十六進(jìn)制數(shù)0x7f,如何將它轉(zhuǎn)換成二進(jìn)制數(shù)01111111,并將每一位二進(jìn)制數(shù)存放到數(shù)組a中,如下所示:a[8]={0,1,1,1,1,1,1,1}。

作者: csmyldl    時(shí)間: 2020-5-1 08:57
a[0]=(bit)(temp&(1<<7));
a[1]=(bit)(temp&(1<<6));
a[2]=(bit)(temp&(1<<5));
a[3]=(bit)(temp&(1<<4));
a[4]=(bit)(temp&(1<<3));
a[5]=(bit)(temp&(1<<2));
a[6]=(bit)(temp&(1<<1));
a[7]=(bit)(temp&1);
作者: wulin    時(shí)間: 2020-5-1 09:51
數(shù)是一個(gè)用于計(jì)數(shù)、標(biāo)記或用作量度的抽象概念,數(shù)的不同進(jìn)制是數(shù)的不同表達(dá)方式,這個(gè)數(shù)所代表的量度本質(zhì)不變。樓主是想把一個(gè)字節(jié)數(shù)據(jù)以二進(jìn)制按位分解存放到8個(gè)數(shù)組成員中,這時(shí)原來數(shù)據(jù)的本質(zhì)已改變。分解方法:
unsigned char a[8];

void Part(unsigned char k)
{
        unsigned char i;
        for(i=8;i>0;i--)
        {
                a[i-1]=k&0x01;
                k>>=1;
        }
}


作者: xxpp2011    時(shí)間: 2020-5-1 10:15
按位取出來就行了,
a[7]=0X7F%2;
a[6]=0X7F/4%2;
a[5]=0X7F/8%4;
a[4]=0X7F/16%8;
...
作者: tzzzzi    時(shí)間: 2020-5-1 12:44
建議不要這樣用,浪費(fèi)內(nèi)存。不如要用的時(shí)候在做處理 k >>= 1 在與 0x01 相與。
作者: f556    時(shí)間: 2020-5-1 13:47
0x7f,不是將它轉(zhuǎn)換成二進(jìn)制數(shù)01111111,0x7f本身就是B01111111,是按二進(jìn)制位拆成一個(gè)char。
樓上3種方法均可行。
這個(gè)問題為什么沒有程序員提出?因?yàn)檫@種拆分沒有多少實(shí)際意義,或者說一般不拆,大多是位合成數(shù)。比如通信。
a[8]占用了64個(gè)字節(jié),不小!!有些MCU只有128字節(jié)RAM,1kf lash,如430F2001等。
真要取某位在程序中直接取就行,如0x7f&0x01,var&0x40,var&0x80等,這才是正道。特別要注意0x01,0x80這兩個(gè)數(shù)非常有用,也常用。即取低位,取高位。
要改寫某一位也簡單。總之,合并才是正道。
有可能Microsoft會(huì)這樣玩,32、64位,系統(tǒng)越來越大,不是位越長起快。變量滿天飛,想用變量就定義,結(jié)果是越升級(jí)系統(tǒng)越慢。




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1