当给定3的位掩码时,printf()打印21而不是11的原因是因为位掩码是一种用于对二进制数据进行位操作的技术。在这种情况下,给定的位掩码是3,其二进制表示为11。
printf()函数是用于格式化输出的函数,当我们使用%d格式化符号来打印一个整数时,它会将该整数转换为十进制并输出。
在位掩码的情况下,我们可以使用按位与运算符(&)来检查给定的位是否被设置为1。当我们将位掩码3与整数21进行按位与运算时,结果为1。这是因为21的二进制表示为10101,而3的二进制表示为11。按位与运算会将对应位置上的位进行比较,只有当两个位都为1时,结果才为1,否则为0。
因此,当我们使用printf()函数打印21时,它会将21转换为十进制并输出,结果为21。
领取专属 10元无门槛券
手把手带您无忧上云