0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何才能給C語言增加幾個(gè)位操作函數(shù)

Wildesbeast ? 來源:單片機(jī)教程網(wǎng) ? 作者:單片機(jī)教程網(wǎng) ? 2020-05-05 15:40 ? 次閱讀

匯編語言中有直接對(duì)位進(jìn)行操作的指令,如置位、復(fù)位、位取反、測(cè)試某一位等,這對(duì)于硬件操作十分方便,在C語言中盡管也提供了一些位操作手段,如按位與、按位或、按位取反等,但它們是對(duì)一個(gè)字節(jié)進(jìn)行操作,如要對(duì)具體的一位操作,仍舊不方便,以下給出了一些函數(shù),可以模仿匯編語言的一些位操作功能。

#define uchar unsigned char

/*測(cè)試變量某一位是否為‘1’,是返回真,否返回假,num為待測(cè)試的數(shù),bit為位數(shù),其值從0到7,下同*/

uchar bittest(uchar num,uchar bit)

{ if(num》》bit&0x01==1)

return 1;

else

return 0;

}

uchar bitclr(uchar num,uchar bit) /*清除某一位*/

{

uchar bit_value[]={1,2,4,8,16,32,64,128};

return num&~bit_value[bit];

}

uchar bitset(uchar num,uchar bit) /*設(shè)置某一位*/

{

uchar bit_value[]={1,2,4,8,16,32,64,128};

return num|bit_value[bit];

}

uchar bitcpl(uchar num,uchar bit) /*取反某一位*/

{

uchar bit_value[]={1,2,4,8,16,32,64,128};

if(num》》bit&0x01==1)

return num&~bit_value[bit];

else

return num|bit_value[bit];

}

/*以下主程序演示,調(diào)用時(shí),可以直接給出數(shù)值,也可以給出變量名*/

void main(void)

{

uchar xx=0xfe;

xx=bitset(xx,0);

printf(“The set out is %x ”,xx);

printf(“The clr out is %x ”,bitclr(255,0));

printf(“The test out is %x ”,bittest(0xff,0));

printf(“The cpl out is %x ”,bitcpl(0x00,7));

}

以上是以TC為例編寫的主程序,各函數(shù)在其它C語言中也一樣可用。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7594

    瀏覽量

    135856
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4277

    瀏覽量

    62323
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    C語言函數(shù)如何返回多個(gè)數(shù)據(jù)

    C語言函數(shù)如何返回多個(gè)數(shù)據(jù)?這個(gè)操作在寫代碼的時(shí)候還經(jīng)常遇到。
    發(fā)表于 07-25 10:53 ?914次閱讀

    C語言中memmove函數(shù)的使用

    C語言編程中,內(nèi)存操作是不可或缺的一部分,而 memmove 函數(shù)是其中一個(gè)重要的工具。本文將介紹 memmove 函數(shù)的應(yīng)用場景以及提供
    發(fā)表于 09-13 09:17 ?1330次閱讀

    如何給C語言增加幾個(gè)位操作函數(shù)

    在匯編語言中有直接對(duì)位進(jìn)行操作的指令,如置位、復(fù)位、位取反、測(cè)試某一位等,這對(duì)于硬件操作十分方便,在C語言中盡管也提供了一些位
    發(fā)表于 07-14 18:15

    C語言回調(diào)函數(shù)學(xué)習(xí)

    對(duì)指針的應(yīng)用是C語言編程的精髓所在,而回調(diào)函數(shù)就是C語言里面對(duì)函數(shù)指針的高級(jí)應(yīng)用。簡而言之,回調(diào)
    發(fā)表于 05-27 09:44 ?7190次閱讀

    C語言增加幾個(gè)位操作函數(shù)

    發(fā)表于 10-10 10:05 ?2次下載

    C語言指針函數(shù)函數(shù)指針詳細(xì)介紹

    C語言指針函數(shù)函數(shù)指針詳細(xì)介紹。。。。。。。
    發(fā)表于 03-04 15:27 ?5次下載

    C語言標(biāo)準(zhǔn)庫函數(shù)

    C語言標(biāo)準(zhǔn)庫函數(shù),使用C語言編程時(shí),常用到的函數(shù)。
    發(fā)表于 05-11 16:41 ?0次下載

    C語言scanf函數(shù)詳解

    C語言scanf函數(shù)詳細(xì)解釋
    發(fā)表于 05-15 09:20 ?6次下載

    基于C語言標(biāo)準(zhǔn)庫函數(shù)

    基于C語言標(biāo)準(zhǔn)庫函數(shù)
    發(fā)表于 10-23 17:41 ?11次下載
    基于<b class='flag-5'>C</b><b class='flag-5'>語言</b>標(biāo)準(zhǔn)庫<b class='flag-5'>函數(shù)</b>

    嵌入式C語言的5個(gè)位操作筆記資料說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是嵌入式C語言的5個(gè)位操作筆記資料說明。
    發(fā)表于 05-08 18:19 ?3次下載
    嵌入式<b class='flag-5'>C</b><b class='flag-5'>語言</b>的5<b class='flag-5'>個(gè)位</b><b class='flag-5'>操作</b>筆記資料說明

    C語言編程文件操作函數(shù)庫匯總資源下載

    C語言編程文件操作函數(shù)庫匯總資源下載
    發(fā)表于 04-15 16:42 ?13次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>編程文件<b class='flag-5'>操作</b><b class='flag-5'>函數(shù)</b>庫匯總資源下載

    C語言函數(shù)速查手冊(cè)

    c\c++語言函數(shù)速查手冊(cè)
    發(fā)表于 06-30 14:48 ?9次下載

    C語言_文件IO操作函數(shù)總結(jié)

    當(dāng)前文章涉及C語言文件操作相關(guān)知識(shí)點(diǎn)。列出最常見的文件操作函數(shù)、fopen、fread、fwrite、fclose 等。通過
    的頭像 發(fā)表于 08-14 09:53 ?1852次閱讀

    C語言函數(shù)參數(shù)介紹

    C語言數(shù)組元素作函數(shù)實(shí)參 數(shù)組元素可以用作函數(shù)實(shí)參,不能用作形參。 C語言在用數(shù)組元素作
    的頭像 發(fā)表于 03-10 14:30 ?2269次閱讀

    c語言源程序main函數(shù)的位置

    C語言源程序中的main函數(shù)是程序的入口點(diǎn),它被認(rèn)為是C語言程序的起點(diǎn)。在執(zhí)行程序時(shí),操作系統(tǒng)將
    的頭像 發(fā)表于 11-24 10:23 ?2255次閱讀