| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 671 人关注过本帖
标题:数据的取位运算
只看楼主 加入收藏
sscc1
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-4-4
结帖率:0
收藏
已结贴  问题点数:10 回复次数:3 
数据的取位运算
例如定义一个结构体
typedef struct a
{
unsigned a: 4;
unsigned b :2;
unsigned c :1;

}
有个数据流1000011
怎样用移位将1000赋值给a,01给b,1给c
搜索更多相关主题的帖子: 运算 数据 
2010-04-04 16:36
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:10 
这样就可以实现,不需要移位
#include <stdio.h>
struct bits
{
unsigned c :1;
unsigned b :2;
unsigned a :4;
unsigned z :1;
};
int main(int argc, char *argv[])
{
    char c=67;
    struct bits *p=(struct bits *)&c;
    printf("a=%d  b=%d  c=%d \n",p->a,p->b,p->c);
    return 0;
}

★★★★★为人民服务★★★★★
2010-04-04 18:04
sscc1
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-4-4
收藏
得分:0 
回复 2楼 cnfarer
char c=67是什么意思啊
2010-04-04 19:04
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
回复 3楼 sscc1
char在内存占一个字节,67对应的字符是C,其在机内二进制就是01000011

★★★★★为人民服务★★★★★
2010-04-04 20:19
快速回复:数据的取位运算
数据加载中...
 
   



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

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