C语言版本:
#include<stdio.h>
typedef unsigned char byte;
int count_bits(byte data){
int count = 0;
for(int i=0;i<8;i++){
if((data&(1<<i))==0){
count++;
}
}
return count;
}
int main(){
byte data[12];
for(int i=0;i<10;i++){
scanf("%u",&data[i]);
}
int ans = 0;
for(int i=0;i<10;i++){
ans += count_bits(data[i]);
}
printf("%d\n",ans);
return 0;
}
java版本:
package algorithd;
import java.util.Scanner;
/**
*@author 风雨落
*@version 2017年12月19日上午9:33:49
*@title 确定一个10字节数据中有多少位是0
*/
public class Main1219 {
public static int count_bits(byte data){
int count = 0;
for(int i=0;i<8;i++){
if((data&(1<<i))==0){
count++;
}
}
return count;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
byte[] data = new byte[12];
Scanner scan = new Scanner(System.in);
for(int i=0;i<10;i++){
data[i] = scan.nextByte();
}
int ans = 0;
for(int i=0;i<10;i++){
System.out.println(data[i]);
ans += count_bits(data[i]);
}
System.out.println(ans);
scan.close();
}
}