OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子全套STM32开发资料,上千讲STM32视频教程,RT1052教程免费下载啦...
查看: 465|回复: 4

C语言中颠倒字符的高低位

[复制链接]

  离线 

10

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2017-5-17
在线时间
25 小时
发表于 2017-12-6 09:49:49 | 显示全部楼层 |阅读模式
1金钱
在Microsoft Visual C++中,我输入一个字符,假如输入的字符转换成二进制是10110101,一条语句就能将他转换成01001010.换句话说,就是一条语句,可将51单片机的P1^0至P^7位高低位的状态互换。

回复

使用道具 举报

  离线 

16

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1279
金钱
1279
注册时间
2014-12-20
在线时间
530 小时
发表于 2017-12-6 10:05:54 | 显示全部楼层
10110101到01001010不是颠倒字符的高低位哦,是取反。。。不知道你想要什么哦。

~(10110101)=01001010
回复

使用道具 举报

  离线 

2

主题

743

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2198
金钱
2198
注册时间
2017-10-24
在线时间
123 小时
发表于 2017-12-6 10:08:14 | 显示全部楼层
参考这篇CSDN博客:

http://blog.csdn.net/uncle_guo/article/details/42574705


博主的第一二种方法差不多,都是采用取某个位然后倒序存放的思想;第三种方法是提前计算好每个数字节倒序的结果,使用的时候直接查表即可。

如果要求速度快的话,建议使用第三种方法。
补充,C语言中没有这样的语句来实现楼主所说的功能。51的汇编语言中,也没有类似的指令。
十六进制带我飞。
回复

使用道具 举报

  离线 

10

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2017-5-17
在线时间
25 小时
 楼主| 发表于 2017-12-6 18:09:34 | 显示全部楼层
BMN李 发表于 2017-12-6 10:05
10110101到01001010不是颠倒字符的高低位哦,是取反。。。不知道你想要什么哦。

~(10110101)=01001010

是P1^0和P1^7电平互换,P1^1和P1^6电平互换,P1^2和P1^5电平互换,,,。。。
回复

使用道具 举报

  离线 

10

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2017-5-17
在线时间
25 小时
 楼主| 发表于 2017-12-6 18:12:40 | 显示全部楼层
BMN李 发表于 2017-12-6 10:05
10110101到01001010不是颠倒字符的高低位哦,是取反。。。不知道你想要什么哦。

~(10110101)=01001010

我当时打错字了,是一组io口的高位和地位的电平状态互换
回复

使用道具 举报

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

本版积分规则




关闭

报名原子哥新品发布会&粉丝见面会上一条 /1 下一条

正点原子公众号

QQ|联系我们|手机版|官方淘宝店|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-10-19 16:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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