首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将2位从一个int复制到另一个int?

如何将2位从一个int复制到另一个int?
EN

Stack Overflow用户
提问于 2014-03-21 17:32:40
回答 2查看 2.2K关注 0票数 5

我有两个无符号整数:ab (b是一个无符号int指针)。我想把第8位和第9位a复制到第2位和第3位b(所有索引都是0)。

我就是这样做的:

代码语言:javascript
复制
 bool secondBit =  (a & (1 << 8) ) ;
 bool thirdBit =   (a & (1 << 9) ) ;

 if (secondBit) {
     *b |= (1u << 2);
 }
 if (thirdBit) {
     *b |= (1u << 3);

提醒:b是一个无符号的int指针。

有更好的方法吗?

EN

回答 2

Stack Overflow用户

发布于 2014-03-21 17:39:39

取决于您对“更好”的定义:)

但是,std::bitset类在C++中是存在的。也许它通过提供一个不太容易出错的界面来满足您的需要。

票数 2
EN

Stack Overflow用户

发布于 2014-03-21 17:37:47

在给定的代码中,它不复制比特--它只是对它们进行了操作。它应该做什么

代码语言:javascript
复制
*b &= ~0xC0;

第一?然后

代码语言:javascript
复制
*b |= ((a >> 6) & 0xC0);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22565665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档