我知道如何设置一个位,清除一点,切换一下,并检查是否设置了一个位。
但是,我如何将bit,例如byte_1的nr 7复制到byte_2中的bit nr 7?
没有if语句(没有检查位的值)是可能的吗?
#include #include int main(){ int byte_1 = 0b00001111; int byte_2 = 0b01010101; byte_2 = // what's next ? return 0; }
byte_2 = (byte_2 & 0b01111111) | (byte_1 & 0b10000000);
您需要先从byte1
读取该位,清除byte2
上的位和/ or
您之前读取的位:
read_from = 3; // read bit 3 write_to = 5; // write to bit 5 the_bit = ((byte1 >> read_from) & 1) << write_to; byte2 &= ~(1 << write_to); byte2 |= the_bit;
请注意,另一个答案中的公式(如果将其扩展为使用变量,而不仅仅是第7位)是针对read_from
和write_to
是相同值的情况。
需要了解更多c/c++开发分享C位操作/从一个字节到另一个字节复制一位,也可以关注C/ C++技术分享栏目---计算机技术网(www.ctvol.com)!
以上就是c/c++开发分享C位操作/从一个字节到另一个字节复制一位相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/978817.html