| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1857 人关注过本帖
标题:请教怎么制定位开始位移
只看楼主 加入收藏
baobao125
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2021-8-22
结帖率:0
收藏
已结贴  问题点数:20 回复次数:6 
请教怎么制定位开始位移
   


0001 0000

我想从第5位的1开始往右移,请问怎么指定从该位开始位移,
搜索更多相关主题的帖子: 指定 右移 定位 
2021-08-22 10:06
自由而无用
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:61
专家分:1456
注 册:2021-8-9
收藏
得分:4 
//online parser: https://www.bccn.net/run/
#include <stdio.h>

typedef unsigned char reg;

#define BIT_MASK4  (reg)0xEF
#define BIT_CLR567  (reg)0x1F
#define BIT_SET567(_r)  (reg)(_r & 0xE0)
#define BIT_MASK4SR(_r, _c)  (reg)((_r & BIT_CLR567) >> _c)
#define BIT_BAOBAO(_r, _c)  (reg)(BIT_SET567(_r) | BIT_MASK4SR(_r, _c))

#define FR_FLAG
#define BIT4  (reg)(1 << 2)
#define BIT_CLRX(_idx)  (reg)(0xFF >> (_idx - 1))
#define BIT_SETX(_r, _idx)  (reg)(_r & (0xFF << (_idx + 1)))
#define BIT_MASKXSR(_r, _idx, _c)  (reg)((_r & BIT_CLRX(_idx)) >> _c)
#define BIT_FR(_r, _idx, _c)  (reg)(BIT_SETX(_r,_idx) | BIT_MASKXSR(_r, _idx, _c))

int main(int argc, char *argv[])
{
    reg r, *vreg = (char *)main;

    for (int i = 0; i < 125; i++) {
       r = vreg[i];
#ifndef FR_FLAG
       printf("%02d: r = 0x%x, r(%d) = 0x%x\n",
       (i + 1), r, 2, BIT_BAOBAO(r, 2));
#else
       printf("%02d: r = 0x%x, r(%d) = 0x%x\n",
       (i + 1), r, 2, BIT_FR(r, BIT4, 2));
#endif
    }
   
    return 0;
}

[此贴子已经被作者于2021-8-22 14:23编辑过]

2021-08-22 13:14
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:4 
从第5位起右移1位
    unsigned char a=0x95;  //10010101
    printf("%.2x",(a&0xE0)|((a&0x1F)>>1)); //0x8A  ‭10001010
2021-08-22 17:32
我善治鬼
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:107
专家分:181
注 册:2015-2-16
收藏
得分:4 
你想要的结果
程序代码:

#include <stdio.h>

int main()
{
    unsigned char a = 1 << 4;
    printf("%u", a >> 1);
    return 0;
}




[此贴子已经被作者于2021-8-22 18:24编辑过]

2021-08-22 18:22
llsh77
Rank: 1
等 级:新手上路
帖 子:5
专家分:4
注 册:2021-8-21
收藏
得分:4 
回复 3楼 吹水佬
学到了
2021-08-22 19:30
s48406503
Rank: 1
等 级:新手上路
帖 子:14
专家分:4
注 册:2021-8-23
收藏
得分:4 
学到了
2021-08-24 08:21
l3392066530
Rank: 2
等 级:论坛游民
威 望:1
帖 子:4
专家分:16
注 册:2022-10-29
收藏
得分:0 
学到了
2022-10-29 13:57
快速回复:请教怎么制定位开始位移
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017353 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved