专栏首页获取设置一个字节某一个位的数值

获取设置一个字节某一个位的数值

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

@import url(http://www.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Ajax跨域访问代理类,支持GET和POST方法

    支持GET和POST两种方式 使用方法:http://localhost:4817/AppContainer/HttpProxy.ashx?httpproxy_...

    用户3135539
  • 用代码旋转屏幕

    用户3135539
  • Flex 中调用 WebService

    用户3135539
  • 干货:密码学系列 - 对称加密

    明文:64 bit 密文:64 bit 密钥:56/64 bit(每 7 位插入一个校验位的时候为 64 bit) 其设计思想充分体现了香农提出的混淆和扩散原则

    Tiny熊
  • 相信坚持的力量!Elastic 日报 1000期+ 了......

    Elastic 日报是由魏彬老师(中国首位 Elastic 认证工程师)发起的,对标参考的是湾区日报。

    铭毅天下
  • 走!VR带你换个地方喝酒去

    VRPinea
  • 9.背景样式-CSS基础

    见贤思齊
  • 总是被发好人卡?那是你还没用这款匿名「告白神器」

    知晓君
  • 点云深度学习系列二: PointCNN

    从前一层的数据中取K个候选点(p1,p2,...pK),使用MLP(多层感知器)来学习一个K×K 的变换矩阵(X-transformation,X...

    点云PCL博主
  • Basic4Android(B4A)-->安卓仿微信扫一扫的条码,二维码,PDF417码等扫码工具及制作过程

    Basic4android 是一个简单但功能强大的 Android 应用开发环境。Basic4android 语言跟 Visual Basic 语言类似,支持更...

    巴西_prince

扫码关注云+社区

领取腾讯云代金券