This question already has answers here:
How do you set, clear, and toggle a single bit?
(28个答案)
3个月前关闭。
函数
请记住,在C语言中(在stdbool.h中定义),true是整数1,而false是整数0。
码
(28个答案)
3个月前关闭。
函数
set_bit(uint64_tx, int pos, bool value)
的主体,返回输入x
的修改后的值,其中pos位置的位替换为值。请记住,在C语言中(在stdbool.h中定义),true是整数1,而false是整数0。
码
uint8_t a=0b00000000;
uint8_t b=0b00001000;
uint8_t c=0b11111101;
uint8_t d=0b11011011;
// l'opération ~( a ) renvoi 0b11111111
// l'opération (c & a) renvoi 0b00000000
// l'opération (c & b) renvoi 0b00001000
// l'opération (a | b) renvoi 0b00001000
// l'opération (d & c) renvoi 0b11011001
#include <stdint.h>
#include <stdbool.h>
/*
* @pre 0<= pos < 64
*/
uint64_t set_bit(uint64_t x, int pos, bool value)
{
// à compléter
}
最佳答案
uint64_t set_bit(uint64_t x, int pos, bool value)
{
// check range
if (pos<0 || (pos&0x40))
return 0; // error
return ((x &~((uint64_t)1<<pos)) | ((uint64_t)value<<pos));
}
关于c - C语言中的按位运算,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59042304/
10-11 22:13