题目要求:
有一组十六比特的二进制数组,需要找出0出现的位置(在最低位出现时),如110011,则输出2
思路:可以将一组二进制数存入到数组中,然后遍历数组,用每一位去与1进行与运算,若为0,则表示出现了0,则输出此时的位置。
给出代码如下:
#include#include int main() { int a[16]; int j = 0; int n; int k=15; printf("please input bit valuen"); for(int k=15; k>=0; k--) scanf("%d", &a[k]);//输入一组数据 n = sizeof(a)/sizeof(a[0]); //判断是否为0,通过与1相与,若为0则该数为0 for(int i = 0; i < n; i++) { if ((a[i] && 1) == 0) { j = i; break; } } //return j; printf("low bit 0 is:%d", j); system("pause"); return 0; }