社区导航

 

搜索
查看: 313|回复: 10

[求助] 如何将8个sbit位数据拼接成一个数据呢?位运算?怎么实现?

[复制链接]

23

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-8-6 14:35 | 显示全部楼层 |阅读模式

如何将8个sbit位数据拼接成一个数据呢?

例如0,1,0,1,0,0,1,1这八个位数据拼接成0101 0011八位二进制数据。可以通过位运算来实现?怎么实现呢?

来源:EEWorld 51单片机板块,转载请附上链接


回复

使用道具 举报

333

TA的帖子

2

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-8-6 14:51 | 显示全部楼层

a |= b0 << 7;

a |= b1 << 6;

a |= b2 << 5;

a |= b3 << 4;

a |= b4 << 3

a |= b5 << 2;

a |= b6 << 1;

a |= b7 << 0;

点评

谢谢啦!可是如果b0,b1……这些都是bit类型,没法进行移位操作啊??  详情 回复 发表于 2019-8-6 15:50


回复

使用道具 举报

1万

TA的帖子

143

TA的资源

版主

Rank: 6Rank: 6

技术导师勋章

发表于 2019-8-6 15:21 | 显示全部楼层

用左移、右移指令。

点评

位数据好像不可以进行移位操作诶,会报错!  详情 回复 发表于 2019-8-6 15:52
上传了一些书籍资料,也许有你想要的:http://download.eeworld.com.cn/user/chunyang


回复

使用道具 举报

23

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2019-8-6 15:50 | 显示全部楼层
29447945 发表于 2019-8-6 14:51 a |= b0 << 7; a |= b1 << 6; a |= b2 << 5; a |= b3 << 4; a |= b4 << 3 ...

谢谢啦!可是如果b0,b1……这些都是bit类型,没法进行移位操作啊??

点评

强制类型转换  详情 回复 发表于 2019-8-6 15:52


回复

使用道具 举报

333

TA的帖子

2

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-8-6 15:52 | 显示全部楼层
小99 发表于 2019-8-6 15:50 谢谢啦!可是如果b0,b1……这些都是bit类型,没法进行移位操作啊??

强制类型转换

点评

就是把bit数据强制转化为unsigned char类型?  详情 回复 发表于 2019-8-6 15:53


回复

使用道具 举报

23

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2019-8-6 15:52 | 显示全部楼层
chunyang 发表于 2019-8-6 15:21 用左移、右移指令。

位数据好像不可以进行移位操作诶,会报错!

点评

移位操作当然不是位操作,思维就那么线性?借助进位做循环移位是最简单的,将位数据转换成字节数据再移位后与预设变量做逻辑操作也行,但执行速度相对慢点。  详情 回复 发表于 2019-8-6 16:29


回复

使用道具 举报

23

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2019-8-6 15:53 | 显示全部楼层

就是把bit数据强制转化为unsigned char类型?



回复

使用道具 举报

6247

TA的帖子

10

TA的资源

版主

Rank: 6Rank: 6

发表于 2019-8-6 16:23 来自手机 | 显示全部楼层
用联合


回复

使用道具 举报

1万

TA的帖子

143

TA的资源

版主

Rank: 6Rank: 6

技术导师勋章

发表于 2019-8-6 16:29 | 显示全部楼层
小99 发表于 2019-8-6 15:52 位数据好像不可以进行移位操作诶,会报错!

移位操作当然不是位操作,思维就那么线性?借助进位做循环移位是最简单的,将位数据转换成字节数据再移位后与预设变量做逻辑操作也行,但执行速度相对慢点。

上传了一些书籍资料,也许有你想要的:http://download.eeworld.com.cn/user/chunyang


回复

使用道具 举报

17

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2019-8-9 09:57 | 显示全部楼层

累加器A清零,位数据送到C,然后移位,8次之后,A里就是一个字节的数据。



回复

使用道具 举报

1156

TA的帖子

0

TA的资源

纯净的硅(高级)

Rank: 6Rank: 6

荣誉会员勋章

发表于 2019-8-13 20:51 | 显示全部楼层

C51不是有位寻址区么?直接用不就得了。。。



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

关闭

站长推荐上一条 /3 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2019-8-22 23:19 , Processed in 0.295126 second(s), 18 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表