有个编程任务,关于c语言的二进制。

编写一个程序,输入两个整数i,j,显示i的第j个二进制位

先将 i转换为二进制串,然后去取第二个字符就是了

(i & 1<<j)>0
或者
(i>>j)&1

要么用1<<j构造一个二进制数,跟i做与运算,把多余的位去掉,再判断整个数是否为0
要么i>>j,把小于j的部分去掉,再跟1做与运算,把大于j的部分也去掉,这样只剩下j位

这个简单,你主要把10进制转2进制的问题解决,剩下都不是问题
参考:

printf("%d\n", (i>>j)&0x01);