Apropos "kollektives Denken": In meiner Teenager-Zeit habe ich die "Perry Rhodan"-Geschichten (gibt es die überhaupt noch?) geradezu verschlungen. Da gab es ein Kollektiv-Wesen Namens "ES"...aber das würde jetzt hier zu weit führen!
Ein einziges Bit zählen
Re: Ein einziges Bit zählen
Wow...immer wieder fantastisch, welche interessanten Lösungen kollektives Denken hervorbringt! Eure Vorschläge haben mir sehr weitergeholfen!
Apropos "kollektives Denken": In meiner Teenager-Zeit habe ich die "Perry Rhodan"-Geschichten (gibt es die überhaupt noch?) geradezu verschlungen. Da gab es ein Kollektiv-Wesen Namens "ES"...aber das würde jetzt hier zu weit führen!
Apropos "kollektives Denken": In meiner Teenager-Zeit habe ich die "Perry Rhodan"-Geschichten (gibt es die überhaupt noch?) geradezu verschlungen. Da gab es ein Kollektiv-Wesen Namens "ES"...aber das würde jetzt hier zu weit führen!
- alles was ich hier im Forum sage/schreibe ist lediglich meine Meinung und keine Tatsachenbehauptung
- unkommentierter Quellcode = unqualifizierter Müll
- unkommentierter Quellcode = unqualifizierter Müll
Re: Ein einziges Bit zählen
Hab ich irgendwo aus dem Internet übersetzt.
Nur 32bit. Wie das mit 64bit geht weis ich noch nicht.
P.S.
Hier noch mal mit SSE4 popcnt
Nur 32bit. Wie das mit 64bit geht weis ich noch nicht.
Code: Alles auswählen
Procedure countBits(x)
; x = x - ((x >> 1) & 0x55555555)
!mov eax, [p.v_x]
!mov ecx, eax
!shr ecx, 1
!And ecx, 55555555h
!sub eax, ecx
; x = (x & 0x33333333) + ((x >> 2) & 0x33333333)
!mov ecx, eax
!And eax, 33333333h
!shr ecx, 2
!And ecx, 33333333h
!add ecx, eax
; x = x + (x >> 4)
!mov eax, ecx
!shr eax, 4
!add eax, ecx
; x &= 0xF0F0F0F
!And eax, 0F0F0F0Fh
; (x * 0x01010101) >> 24
!imul eax, 01010101h
!shr eax, 24
ProcedureReturn
EndProcedure
a = $80000001
Debug countBits(a)
Hier noch mal mit SSE4 popcnt
Code: Alles auswählen
Procedure countBits(x)
CompilerIf #PB_Compiler_Processor = #PB_Processor_x86
!popcnt eax, [p.v_x]
CompilerElse
!popcnt rax, [p.v_x]
CompilerEndIf
ProcedureReturn
EndProcedure
a = $80000001
b = countBits(a)
Debug b
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Re: Ein einziges Bit zählen
Perry Rhodan wurde gerade wieder neu groß aufgelegt. Hat seinen "zweiten Frühling" durch die eReader erleben dürfen. Gab einen Stand auf der Leipziger Buchmesse. Ist mir dort ins Auge gestochen 
(Win 11 64-bit, PB 6.04 und 6.10)