使用 C++ 更新给定位置的位或数字的索引
在给定的问题中,我们必须更新一个数字的给定索引的位。要更新数字,我们可以对给定数字使用位操作操作。例如,
输入1-
N= 25 bit= 1 position= 2
输出-
29
说明-由于给定的输入25可以用二进制写入“11001”,而位置索引为“2”,位为“1”。替换给定位置的数字后,输出将是“11101”,相当于“29”。
解决这个问题的方法
在数字的给定位置或索引中,任务是用输入中给定的特定位更新该位。更新给定位置的位的方法是先清除给定位置的位,然后执行二进制与运算来更新该位。
输入一个数字N,要更新为“位”的位和我们必须将位更新为“位置”的位置或索引。
void函数updateBit(int&n,intbit,intposition)获取当前位的地址、位值和位的索引。该函数将通过用给定的位替换位来打印数字的更新值。
清除给定位置的位并将结果位添加到结果中。
创建掩码并对结果执行AND运算。
使用我们创建的掩码执行二进制OR操作,并使用要在索引处更新的值执行右移操作。
示例
#includeusing namespace std; void updateBit(int &n,int bit, int pos){ int clearBit= ~(1< 输出结果 运行上面的代码将生成输出,
29由于输入是25,即二进制表示的11001。用'1'替换'2'的位置后,它将变成二进制的11101,即29。