OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3725|回复: 5

对一个32位数据,任意位取反,其它不变,怎么写呢?

[复制链接]

44

主题

298

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
209
金钱
209
注册时间
2016-9-9
在线时间
84 小时
发表于 2017-4-17 10:07:13 | 显示全部楼层 |阅读模式
5金钱
            要写一个函数,它里面 需要两个形参,一个是32位数据,另一个是哪位取反的数字,再返回取反之后的这个数,
我自己写了半天,调出来,都是数据错误,

大神们谁写过,给小弟看看,嘿嘿。。。。

最佳答案

查看完整内容[请看2#楼]

[mw_shl_code=applescript,true]u32 a(u32 b,u8 c) { if(b & (0x1
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

69

主题

978

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3774
金钱
3774
注册时间
2015-4-26
在线时间
766 小时
发表于 2017-4-17 10:07:14 | 显示全部楼层
[mw_shl_code=applescript,true]u32 a(u32 b,u8 c)
{
if(b & (0x1 << c)
  return  (b & (~(0x1 << c)));
else
  return (b | (0x1 << c));
}[/mw_shl_code]
我有故事,你有酒吗
回复

使用道具 举报

44

主题

298

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
209
金钱
209
注册时间
2016-9-9
在线时间
84 小时
 楼主| 发表于 2017-4-18 10:46:24 | 显示全部楼层
来俩不甜的 发表于 2017-4-17 10:07
[mw_shl_code=applescript,true]u32 a(u32 b,u8 c)
{
if(b & (0x1

分两种情况判断呀
回复

使用道具 举报

3

主题

238

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1366
金钱
1366
注册时间
2016-5-26
在线时间
1698 小时
发表于 2017-4-18 11:31:10 来自手机 | 显示全部楼层
来俩不甜的 发表于 2017-4-17 10:07
[mw_shl_code=applescript,true]u32 a(u32 b,u8 c)
{
if(b & (0x1

这个 a = b ^ (1 << c) 就行吧
回复

使用道具 举报

69

主题

978

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3774
金钱
3774
注册时间
2015-4-26
在线时间
766 小时
发表于 2017-4-18 13:12:50 | 显示全部楼层
dreamARM 发表于 2017-4-18 10:46
分两种情况判断呀

取反吗,0->1  1->0 就是2中情况啊,看4楼的比较掉一点
我有故事,你有酒吗
回复

使用道具 举报

22

主题

213

帖子

0

精华

高级会员

Rank: 4

积分
682
金钱
682
注册时间
2015-2-13
在线时间
74 小时
发表于 2017-4-19 09:19:09 | 显示全部楼层
某位置0:
b &= ~(u32)(1<<c);

某位置1:
b |= (u32)(1<<c);

某位取反:
b ^= (u32)(1<<c);
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-8-22 01:13

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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