程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言中位運算置0操作

C語言中位運算置0操作

編輯:關於C語言

C語言與C++的不同, 關鍵在於位運算和宏操作, 可以通過位移(<<)和與運算(&), 把指定位置為0.

代碼:

/* 
 * test.cpp 
 * 
 *  Created on: 2014.05.23 
 *      Author: Spike 
 */
      
/*eclipse cdt, gcc 4.8.1*/
      
#include <iostream>  
      
#define BIT_MASK(bit_pos) (0x01 << (bit_pos))  
      
using namespace std;  
      
int Bit_Reset(unsigned int* val, unsigned char pos) {  
    if (pos >= sizeof(unsigned int)*8) {  
        return 0;  
    }  
    *val = (*val & ~BIT_MASK(pos)); //與0做與(&)運算  
    return 1;  
}  
      
int main() {  
    unsigned int x = 0xffffffff;  
    unsigned char y = 4;  
    Bit_Reset(&x, y);  
    std::cout << std::hex << x << std::endl;  
    return 0;  
}

輸出:

ffffffef

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved