Difference between revisions of "Bit-Twiddling"

From Chessprogramming wiki
Jump to: navigation, search
(Created page with "'''Home * Programming * Bit-Twiddling''' '''Bit-twiddling''' is a family of techniques used in [https://en.wikipedia.org/wiki/Bit_manipulation manipulating]...")
 
 
(3 intermediate revisions by the same user not shown)
Line 31: Line 31:
 
* [http://www-cs-faculty.stanford.edu/%7Eknuth/fasc0c.ps.gz Pre-Fascicle 0c (Boolean evaluation)]
 
* [http://www-cs-faculty.stanford.edu/%7Eknuth/fasc0c.ps.gz Pre-Fascicle 0c (Boolean evaluation)]
 
* [http://www-cs-faculty.stanford.edu/%7Eknuth/fasc1a.ps.gz Pre-Fascicle 1a (Bitwise tricks and techniques)]
 
* [http://www-cs-faculty.stanford.edu/%7Eknuth/fasc1a.ps.gz Pre-Fascicle 1a (Bitwise tricks and techniques)]
Online [[Papers]] by [[Henry S. Warren, Jr.]]
+
Online Papers by [[Henry S. Warren, Jr.]]
 
* [[Henry S. Warren, Jr.#HackersDeligh|Hacker’s Delight]], [http://www.informit.com/store/product.aspx?isbn=0321842685 2nd Edition]
 
* [[Henry S. Warren, Jr.#HackersDeligh|Hacker’s Delight]], [http://www.informit.com/store/product.aspx?isbn=0321842685 2nd Edition]
 
* [http://www.hackersdelight.org/basics1.pdf Sample section of Hacker's Delight, Chapter 2 Basics] (pdf)
 
* [http://www.hackersdelight.org/basics1.pdf Sample section of Hacker's Delight, Chapter 2 Basics] (pdf)
 
* [http://www.hackersdelight.org/hdcode.htm C code for most of the programs that appear in HD]
 
* [http://www.hackersdelight.org/hdcode.htm C code for most of the programs that appear in HD]
 
=Other Bit-Twiddling resources=
 
=Other Bit-Twiddling resources=
* Michael Beeler, [[Bill Gosper]], [https://en.wikipedia.org/wiki/Richard_Schroeppel Rich Schroeppel] ('''1972'''). ''[http://home.pipeline.com/~hbaker1/hakmem/hakmem.html HAKMEM]'', Memo 239, Artificial Intelligence Laboratory, [[Massachusetts Institute of Technology]],
+
* Michael Beeler, [[Bill Gosper]], [https://en.wikipedia.org/wiki/Richard_Schroeppel Rich Schroeppel] ('''1972'''). ''[https://dspace.mit.edu/handle/1721.1/6086 HAKMEM]'', Memo 239, Artificial Intelligence Laboratory, [[Massachusetts Institute of Technology]]
: Web-available by [http://home.pipeline.com/~hbaker1/ Henry Baker]
 
 
: [http://www.cl.cam.ac.uk/~am21/hakmemc.html HAKMEMC -- HAKMEM Programming hacks in C] by [http://www.cl.cam.ac.uk/~am21/ Alan Mycroft]
 
: [http://www.cl.cam.ac.uk/~am21/hakmemc.html HAKMEMC -- HAKMEM Programming hacks in C] by [http://www.cl.cam.ac.uk/~am21/ Alan Mycroft]
 
: [https://en.wikipedia.org/wiki/HAKMEM HAKMEM from Wikipedia]
 
: [https://en.wikipedia.org/wiki/HAKMEM HAKMEM from Wikipedia]
Line 46: Line 45:
 
* [http://programming.sirrida.de Programming pages] of [http://sourceforge.net/users/jasper_neumann/ Jasper Neumann]
 
* [http://programming.sirrida.de Programming pages] of [http://sourceforge.net/users/jasper_neumann/ Jasper Neumann]
 
* [https://github.com/keon/awesome-bits GitHub - keon/awesome-bits: A curated list of awesome bitwise operations and tricks]
 
* [https://github.com/keon/awesome-bits GitHub - keon/awesome-bits: A curated list of awesome bitwise operations and tricks]
* [http://www.onjava.com/pub/a/onjava/2005/02/02/bitsets.html Bitwise Optimization in Java: Bitfields, Bitboards, and Beyond] by [[Glen Pepicelli]], 2005, [https://en.wikipedia.org/wiki/O%27Reilly_Media O'Reilly's] [http://onjava.com/ OnJava.com] » [[Java]], [[Bitboards]]
+
* [https://web.archive.org/web/20050205014648/http://www.onjava.com/pub/a/onjava/2005/02/02/bitsets.html Bitwise Optimization in Java: Bitfields, Bitboards, and Beyond] by [[Glen Pepicelli]], ([https://en.wikipedia.org/wiki/Wayback_Machine Wayback Machine], 2005), [http://en.wikipedia.org/wiki/O%27Reilly_Media O'Reilly's] [https://web.archive.org/web/20050203015229/http://onjava.com/ OnJava.com] » [[Java]], [[Bitboards]]
 
* [https://github.com/golang/go/issues/18616 math/bits: an integer bit twiddling library · Issue #18616 · golang/go · GitHub] » [[Go (Programming Language)]]
 
* [https://github.com/golang/go/issues/18616 math/bits: an integer bit twiddling library · Issue #18616 · golang/go · GitHub] » [[Go (Programming Language)]]
  
Line 54: Line 53:
 
* [http://mridulm.blogspot.com/2006/09/bit-twiddling.html bit twiddling ...] from [http://mridulm.blogspot.com/ Random thoughts] blog by [[Mridul Muralidharan]]
 
* [http://mridulm.blogspot.com/2006/09/bit-twiddling.html bit twiddling ...] from [http://mridulm.blogspot.com/ Random thoughts] blog by [[Mridul Muralidharan]]
 
* [http://zimbry.blogspot.de/ Twiddling the Bits] by [[David Stafford]]
 
* [http://zimbry.blogspot.de/ Twiddling the Bits] by [[David Stafford]]
* [[Videos#NHOP|NHØP]] & [[Videos#TaniaMaria|Tania Maria]] - Baião improvisado, [https://en.wikipedia.org/wiki/YouTube YouTube] Video
+
* [[:Category:NHOP|NHØP]] & [[:Category:Tania Maria|Tania Maria]] - Baião improvisado, [https://en.wikipedia.org/wiki/YouTube YouTube] Video
 
: {{#evu:https://www.youtube.com/watch?v=7zbY6URSZ-U|alignment=left|valignment=top}}
 
: {{#evu:https://www.youtube.com/watch?v=7zbY6URSZ-U|alignment=left|valignment=top}}
  
 
'''[[Programming|Up one Level]]'''
 
'''[[Programming|Up one Level]]'''
 +
[[Category:NHOP]]
 +
[[Category:Tania Maria]]

Latest revision as of 12:07, 3 February 2022

Home * Programming * Bit-Twiddling

Bit-twiddling is a family of techniques used in manipulating integers in a non-obvious manner in order to obtain a result either more quickly or with less code. Bit-twiddling is often associated with bitboards, but there are both easy-to-read bitboard implementations and difficult-to-read implementations of other board representations.

Bit-Twiddling related to Bitboards

Bit-Manipulation

Forum Posts

Important online resources

Online Papers by Donald Knuth:

Vol 4 as Pre-Fascicle PostScripts:

Online Papers by Henry S. Warren, Jr.

Other Bit-Twiddling resources

HAKMEMC -- HAKMEM Programming hacks in C by Alan Mycroft
HAKMEM from Wikipedia

External Links

Up one Level