C ch11重點整理-Bit Operation

  • 大部份的高階語言不需要bit operationlow-level coding時,像寫驅動程式、或pixel等級的graphic programming則需要bit operation.
  • C裡,一個char為一個byte;一個byte,則為8bits
  • Bit structure可以用c16進位數字代表,如: “0x36” ,則為 “00110110”的代表,16進位在printf() 是使用 %x來表示,8進位則為%o

  • &: bitwise and
  • |: bitwise or
  • ^ :bitwise xor
  • <<: shift left   比較特別的利用是 I = j>> 3 ,則等於I = j * (2*2*2)
  • >> :shift right  比較特別的到用是 I= j<< 3 ,則等於 I = j / (2*2*2)
  • ~ :bitwise not

      語言printf()並沒有能代表binary的符號,得自己寫個 int_to_bit()程式


設定bits

如:const int ERROR = 0x01


練習:寫一個clear bit的macro

#include <stdio.h>

#define clear_bit(x) (x)=(x)>>24;

 main()

{

    int a=0xAF;

    clear_bit(a)

    printf("%d\n",a);

    return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值