惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
Stack Overflow Blog
Stack Overflow Blog
B
Blog RSS Feed
C
Check Point Blog
D
Docker
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
Google DeepMind News
Google DeepMind News
MongoDB | Blog
MongoDB | Blog
博客园_首页
Apple Machine Learning Research
Apple Machine Learning Research
量子位
有赞技术团队
有赞技术团队
IT之家
IT之家
大猫的无限游戏
大猫的无限游戏
D
DataBreaches.Net
M
MIT News - Artificial intelligence
B
Blog
阮一峰的网络日志
阮一峰的网络日志
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
腾讯CDC
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
V
V2EX
月光博客
月光博客

博客园 - Liren

查找目录中同名的文件或者文件夹 基于JMS的数据交换既数据互操作平台的解决方案 Spring MVC基于注解的Junit测试 Spring MVC 3中关于url-pattern设成"/"后,资源访问问题 博文阅读密码验证 - 博客园 NotificationManager - Liren - 博客园 发送短信 调用系统联系人列表 MorseCodeConverter 自用留存 - Liren - 博客园 Android 给自己的类加个事件 用代码旋转屏幕 - Liren - 博客园 Android SQLiteHelper Cassandra API60 Java 代码示例 Cassandra Java 使用TimeUUIDType 转:在 CLI 中練習 Data Model asp.net 实现一个简单CAS Server - Liren Ajax跨域访问代理类,支持GET和POST方法 Python 学习笔记:需要仔细阅读一个函数 Python 学习笔记: 备份工具
获取设置一个字节某一个位的数值
Liren · 2012-08-05 · via 博客园 - Liren

void print2(unsigned char a)

{

    int r[8];

    r[0] = ( a & (0x01 << 0)) >> 0; // 最低位

    r[1] = ( a & (0x01 << 1)) >> 1;

    r[2] = ( a & (0x01 << 2)) >> 2;

    r[3] = ( a & (0x01 << 3)) >> 3;

    r[4] = ( a & (0x01 << 4)) >> 4;

    r[5] = ( a & (0x01 << 5)) >> 5;

    r[6] = ( a & (0x01 << 6)) >> 6;

    r[7] = ( a & (0x01 << 7)) >> 7// 最高位

    printf("%d %d %d %d   %d %d %d %d\n",r[7],r[6],r[5],r[4],r[3],r[2],r[1],r[0]);

}

int main(void)

{

    unsigned char a = 0xBF;

    print2(a);

    unsigned char b = a | (0x01 << 6); //set on

    print2(b);

   b = a | (0x01 << 2); //set off 1

   unsigned char c = b ^ (0x01 << 2); //set off 2 ( 先set on 在 ^ )

    print2(c);

}

output:

1 0 1 1   1 0 1 1   //0xBF

1 1 1 1   1 1 1 1

1 1 1 1   1 0 1 1