View source code
							
							
						
								Display the source code in core/bitop.d from which this
								page was generated on github.
							
						
							Report a bug
							
						
								If you spot a problem with this page, click here to create a
								Bugzilla issue.
							
						
							
								Improve this page
							
							
					
								Quickly fork, edit online, and submit a pull request for this page.
								Requires a signed-in GitHub account. This works well for small changes.
								If you'd like to make larger changes you may want to consider using
								local clone.
							
						Module core.bitop
This module contains a collection of bit-level operations.
Functions
| Name | Description | 
|---|---|
| 
									_popcnt(x)
								 | Calculates the number of set bits in an integer using the X86 SSE4 POPCNT instruction. POPCNT is not available on all X86 CPUs. | 
| 
									bitswap(x)
								 | Reverses the order of bits in a 32-bit integer. | 
| 
									bitswap(x)
								 | Reverses the order of bits in a 64-bit integer. | 
| 
									bsf(v)
								 | Scans the bits in v starting with bit 0, looking for the first set bit. | 
| 
									bsr(v)
								 | Scans the bits in v from the most significant bit to the least significant bit, looking for the first set bit. | 
| 
									bswap(v)
								 | Swaps bytes in a 4 byte uint end-to-end, i.e. byte 0 becomes byte 3, byte 1 becomes byte 2, byte 2 becomes byte 1, byte 3 becomes byte 0. | 
| 
									bswap(v)
								 | Swaps bytes in an 8 byte ulong end-to-end, i.e. byte 0 becomes byte 7, byte 1 becomes byte 6, etc. This is meant to be recognized by the compiler as an intrinsic. | 
| 
									bt(p, bitnum)
								 | Tests the bit. (No longer an intrisic - the compiler recognizes the patterns in the body.) | 
| 
									btc(p, bitnum)
								 | Tests and complements the bit. | 
| 
									btr(p, bitnum)
								 | Tests and resets (sets to 0) the bit. | 
| 
									bts(p, bitnum)
								 | Tests and sets the bit. | 
| 
									byteswap(x)
								 | Swaps bytes in a 2 byte ushort. | 
| 
									inp(port_address)
								 | Reads I/O port at port_address. | 
| 
									inpl(port_address)
								 | Reads I/O port at port_address. | 
| 
									inpw(port_address)
								 | Reads I/O port at port_address. | 
| 
									outp(port_address, value)
								 | Writes and returns value to I/O port at port_address. | 
| 
									outpl(port_address, value)
								 | Writes and returns value to I/O port at port_address. | 
| 
									outpw(port_address, value)
								 | Writes and returns value to I/O port at port_address. | 
| 
									popcnt(x)
								 | Calculates the number of set bits in an integer. | 
| 
									rol(value, count)
								 | Bitwise rotate valueleft (rol) or right (ror) bycountbit positions. | 
| 
									ror(value, count)
								 | Bitwise rotate valueleft (rol) or right (ror) bycountbit positions. | 
Structs
| Name | Description | 
|---|---|
| 
									BitRange
								 | Range over bit set. Each element is the bit number that is set. | 
Authors
Don Clugston, Sean Kelly, Walter Bright, Alex Rønne Petersen, Thomas Stuart Bockman
License
					Copyright © 1999-2024 by the D Language Foundation | Page generated by ddox.