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

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

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

C語(yǔ)言的幾種位操作運(yùn)算程序詳細(xì)說(shuō)明

Wildesbeast ? 來(lái)源:福星電子網(wǎng) ? 作者:福星電子網(wǎng) ? 2020-07-18 12:00 ? 次閱讀

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

#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));

}

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

    關(guān)注

    180

    文章

    7618

    瀏覽量

    138705
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3807

    瀏覽量

    81727
  • 運(yùn)算
    +關(guān)注

    關(guān)注

    0

    文章

    132

    瀏覽量

    25925
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    全套C語(yǔ)言培訓(xùn)資料—PPT課件

    與共用體、運(yùn)算、文件 全套C語(yǔ)言培訓(xùn)資料,共427頁(yè),13個(gè)章節(jié):C語(yǔ)言概述、
    發(fā)表于 03-12 14:50

    UHV系列雷電沖擊電壓發(fā)生器試驗(yàn)裝置詳細(xì)說(shuō)明使用

    UHV系列 雷電沖擊電壓發(fā)生器試驗(yàn)裝置產(chǎn)品詳細(xì)說(shuō)明書(shū)
    發(fā)表于 02-21 17:55 ?17次下載

    深入理解C語(yǔ)言:循環(huán)語(yǔ)句的應(yīng)用與優(yōu)化技巧

    程序設(shè)計(jì)中,我們常常需要重復(fù)執(zhí)行某一段代碼。為了提高效率和簡(jiǎn)化代碼,循環(huán)語(yǔ)句應(yīng)運(yùn)而生。C語(yǔ)言作為一門(mén)經(jīng)典的編程語(yǔ)言,提供了多種循環(huán)控制結(jié)構(gòu),幫助
    的頭像 發(fā)表于 12-07 01:11 ?337次閱讀
    深入理解<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>:循環(huán)語(yǔ)句的應(yīng)用與優(yōu)化技巧

    AWTK-WEB 快速入門(mén)(1) - C 語(yǔ)言應(yīng)用程序

    導(dǎo)讀AWTK可以使用相同的技術(shù)棧開(kāi)發(fā)各種平臺(tái)的應(yīng)用程序。有時(shí)我們需要使用Web界面與設(shè)備進(jìn)行交互,本文介紹一下如何使用C語(yǔ)言開(kāi)發(fā)AWTK-WEB應(yīng)用程序。用AWTKDesigner新建
    的頭像 發(fā)表于 11-27 11:46 ?409次閱讀
    AWTK-WEB 快速入門(mén)(1) - <b class='flag-5'>C</b> <b class='flag-5'>語(yǔ)言</b>應(yīng)用<b class='flag-5'>程序</b>

    技術(shù)干貨驛站 ▏深入理解C語(yǔ)言:掌握C語(yǔ)言條件判斷,從if到switch的應(yīng)用

    語(yǔ)句和條件運(yùn)算符。這些結(jié)構(gòu)不僅增強(qiáng)了代碼的靈活性,還提高了程序的可讀性和可維護(hù)性。本文將深入探討C語(yǔ)言中的主要條件判斷語(yǔ)句,包括它們的語(yǔ)法、使用方法及實(shí)際應(yīng)用,通過(guò)
    的頭像 發(fā)表于 11-09 01:10 ?515次閱讀
    技術(shù)干貨驛站 ▏深入理解<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>:掌握<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>條件判斷,從if到switch的應(yīng)用

    C語(yǔ)言指針運(yùn)算符詳解

    C語(yǔ)言中,當(dāng)你有一個(gè)指向數(shù)組中某個(gè)元素的指針時(shí),你可以對(duì)該指針執(zhí)行某些算術(shù)運(yùn)算,例如加法或減法。這些運(yùn)算可以用來(lái)遍歷數(shù)組中的元素,如ptr[i]等價(jià)于*(ptr + i)。然而,如果
    的頭像 發(fā)表于 10-30 11:16 ?391次閱讀

    C語(yǔ)言與Java語(yǔ)言的對(duì)比

    C語(yǔ)言和Java語(yǔ)言都是當(dāng)前編程領(lǐng)域中的重要成員,它們各自具有獨(dú)特的優(yōu)勢(shì)和特點(diǎn),適用于不同的應(yīng)用場(chǎng)景。以下將從語(yǔ)法特性、內(nèi)存管理、跨平臺(tái)性、性能、應(yīng)用領(lǐng)域等多個(gè)方面對(duì)C
    的頭像 發(fā)表于 10-29 17:31 ?600次閱讀

    技術(shù)干貨驛站 ▏解鎖C語(yǔ)言高效編程秘訣:深入解析運(yùn)算符與優(yōu)先級(jí)

    C語(yǔ)言的學(xué)習(xí)過(guò)程中,運(yùn)算符的使用是不可忽視的重要環(huán)節(jié)。本文將繼續(xù)深入探討C語(yǔ)言中的運(yùn)算符,重點(diǎn)
    的頭像 發(fā)表于 10-13 08:09 ?384次閱讀
    技術(shù)干貨驛站 ▏解鎖<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>高效編程秘訣:深入解析<b class='flag-5'>運(yùn)算</b>符與優(yōu)先級(jí)

    技術(shù)干貨驛站 ▏深入理解C語(yǔ)言:編程高手必備,全方位解析運(yùn)算符的核心技能!

    過(guò)程中發(fā)揮著重要作用,還對(duì)程序的性能和穩(wěn)定性產(chǎn)生直接影響。繼上一期對(duì)C語(yǔ)言常量的深入分析后,本文將進(jìn)一步探討C語(yǔ)言中的常用
    的頭像 發(fā)表于 09-18 15:56 ?494次閱讀
    技術(shù)干貨驛站 ▏深入理解<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>:編程高手必備,全方位解析<b class='flag-5'>運(yùn)算</b>符的核心技能!

    C語(yǔ)言指針詳細(xì)解析

    可以對(duì)數(shù)據(jù)本身,也可以對(duì)存儲(chǔ)數(shù)據(jù)的變量地址進(jìn)行操作。 指針是一個(gè)占據(jù)存儲(chǔ)空間的實(shí)體在這一段空間起始位置的相對(duì)距離值。在C/C++語(yǔ)言中,指針一般被認(rèn)為是指針變量,指針變量的內(nèi)容存儲(chǔ)的是
    發(fā)表于 09-14 10:03

    hex文件如何查看原c語(yǔ)言代碼

    是處理器可以直接執(zhí)行的指令,而 C 語(yǔ)言代碼則是人類可讀的高級(jí)編程語(yǔ)言代碼。 然而,如果你想要從 .hex 文件中獲取一些有用的信息或者對(duì)程序進(jìn)行分析,你可以考慮以下
    的頭像 發(fā)表于 09-02 10:37 ?3280次閱讀

    c語(yǔ)言從右到左的運(yùn)算符有哪些

    以下是一些主要的從右到左運(yùn)算C語(yǔ)言運(yùn)算符: 函數(shù)調(diào)用運(yùn)算符 ( () ):當(dāng)您調(diào)用一個(gè)函數(shù)時(shí),參數(shù)列表是從右到左進(jìn)行求值的。 后置遞增
    的頭像 發(fā)表于 08-20 11:39 ?1328次閱讀

    技術(shù)干貨驛站 ▏深入理解C語(yǔ)言:掌握程序結(jié)構(gòu)知識(shí)

    在計(jì)算機(jī)編程的世界中,C語(yǔ)言被廣泛認(rèn)可為一門(mén)強(qiáng)大而高效的編程語(yǔ)言,其簡(jiǎn)潔的語(yǔ)法和直接的指令使得它成為了許多程序員的首選。了解C
    的頭像 發(fā)表于 07-27 08:45 ?1602次閱讀
    技術(shù)干貨驛站 ▏深入理解<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>:掌握<b class='flag-5'>程序</b>結(jié)構(gòu)知識(shí)

    C語(yǔ)言基礎(chǔ)-為什么要使用C?

    當(dāng)今最流行的 Linux 操作系統(tǒng)和 RDBMS(Relational Database Management System:關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)) MySQL 都是使用 C 語(yǔ)言編寫(xiě)的。
    發(fā)表于 03-25 11:20 ?547次閱讀

    3KW工業(yè)變頻器電路設(shè)計(jì)方案詳細(xì)說(shuō)明

    3KW工業(yè)變頻器電路設(shè)計(jì)方案詳細(xì)說(shuō)明
    的頭像 發(fā)表于 03-19 08:33 ?1201次閱讀
    3KW工業(yè)變頻器電路設(shè)計(jì)方案<b class='flag-5'>詳細(xì)說(shuō)明</b>