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 value left (rol) or right (ror) by
  count bit positions.
 | 
						
								
									ror(value, count)
								
							 | 
							Bitwise rotate value left (rol) or right (ror) by
  count bit 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.