bitcount2.c

来自「关于linux环境下的nasm代码的生成和使用」· C语言 代码 · 共 39 行

C
39
字号
#include <stdio.h>static unsigned char byte_bit_count[256];  /* lookup table */void initialize_count_bits(){  int cnt, i, data;  for( i = 0; i < 256; i++ ) {    cnt = 0;    data = i;    while( data != 0 ) {	      data = data & (data - 1);      cnt++;    }    byte_bit_count[i] = cnt;    printf("%d %d\n", i, byte_bit_count[i]);  }}int count_bits( unsigned int data ){  const unsigned char * dword = ( unsigned char *) & data;  return byte_bit_count[dword[0]] + byte_bit_count[dword[1]] +         byte_bit_count[dword[2]] + byte_bit_count[dword[3]];}int main(){  unsigned int x;  initialize_count_bits();  printf("Enter a number: ");  scanf("%i", &x);  printf("There are %d bits on in %X\n", count_bits(x), x);  return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?