當前位置:編程學習大全網 - 編程軟體 - c++ 判斷是否為1 要求效率高

c++ 判斷是否為1 要求效率高

想高校還用系統的bitset?

用了這東西?就高校不到哪裏去了

要真正高效就自己用unsigned?char去存

每次訪問內存至少是1字節

bitset只是方便妳編程而已

毫無效率可言

每次取壹位

至少從內存讀壹個字節的數據出來

自己用?unsigned?char去做

每次取壹個字節

每次比對8位

最高效的就是?自己嵌入匯編

下面是壹個例子

僅供參考:

#include?<stdio.h>

unsigned?char?inline?calc(unsigned?char*?src,unsigned?char*?pos)

{

unsigned?char?x=0;

unsigned?char?uc=*(src+(unsigned?int)pos);

_asm

{

push?ecx

mov?ecx,8

loop1: shr?uc,1

adc?x,0

loop?loop1

pop?ecx

}

return?x;

}

int?main()

{

unsigned?char?bittest[9]="\x01\x02\x03\x04\x5\x6\x7\xff",*p=NULL;

for(int?i=0;i<9;i++)

printf("bit%d:%d\n",i,calc(bittest,p++));

return?0;

}

結果不對妳打我好了

比bitset 至少快8倍

如果bitset內部實現沒有進行匯編級別的優化 可能就快幾百倍了

不信樓主自己試試

  • 上一篇:手機編程如何選股
  • 下一篇:匯編語言中什麽指令是程序員能訪問的?
  • copyright 2024編程學習大全網