mirror of
https://github.com/QB64Official/qb64.git
synced 2024-08-22 11:25:08 +00:00
65 lines
1.5 KiB
Markdown
65 lines
1.5 KiB
Markdown
|
The [_READBIT](_READBIT) function is used to check the state of a specified bit of a integer value.
|
||
|
|
||
|
## Syntax
|
||
|
|
||
|
> result = [_READBIT](_READBIT)(numericalVariable, numericalValue)
|
||
|
|
||
|
## Parameter(s)
|
||
|
|
||
|
* numericalVariable is the variable to read the state of a bit of and can be of the following types: [_BYTE](_BYTE), [INTEGER](INTEGER), [LONG](LONG), or [_INTEGER64](_INTEGER64).
|
||
|
* Integer values can be signed or [_UNSIGNED](_UNSIGNED).
|
||
|
* numericalValue the number of the bit to be read.
|
||
|
|
||
|
## Description
|
||
|
|
||
|
* Used to check the current state of a bit in an integer value.
|
||
|
* Returns -1 if the bit is set(1), otherwise returns 0 if the bit is not set(0)
|
||
|
* Bits start at 0 (so a [_BYTE](_BYTE) has bits 0 to 7, [INTEGER](INTEGER) 0 to 15, and so on)
|
||
|
|
||
|
## Availability
|
||
|
|
||
|
* Version 1.4 and up.
|
||
|
|
||
|
## Example(s)
|
||
|
|
||
|
```vb
|
||
|
|
||
|
A~%% = _SETBIT(A~%%,4)
|
||
|
PRINT "Bit 4 is currently ";
|
||
|
IF _READBIT(A~%%,4) = -1 THEN PRINT "ON" ELSE PRINT "OFF"
|
||
|
PRINT "And bit 2 is currently ";
|
||
|
IF _READBIT(A~%%,2) = -1 THEN PRINT "ON" ELSE PRINT "OFF"
|
||
|
|
||
|
```
|
||
|
|
||
|
```text
|
||
|
|
||
|
Bit 4 is currently ON
|
||
|
And bit 2 is currently OFF
|
||
|
|
||
|
```
|
||
|
|
||
|
```vb
|
||
|
|
||
|
B& = 12589575
|
||
|
PRINT "B& ="; B&
|
||
|
FOR I%% = 31 TO 0 STEP -1 '32 bits for a LONG value
|
||
|
Binary$ = Binary$ + LTRIM$(STR$(ABS(_READBIT(B&, I%%))))
|
||
|
NEXT I%%
|
||
|
PRINT "B& in binary is: "; Binary$
|
||
|
|
||
|
```
|
||
|
|
||
|
```text
|
||
|
|
||
|
B& = 12589575
|
||
|
B& in binary is: 00000000110000000001101000000111
|
||
|
|
||
|
```
|
||
|
|
||
|
## See Also
|
||
|
|
||
|
* [_SHL](_SHL), [_SHR](_SHR), [INTEGER](INTEGER), [LONG](LONG)
|
||
|
* [_SETBIT](_SETBIT), [_BYTE](_BYTE), [_INTEGER64](_INTEGER64)
|
||
|
* [_RESETBIT](_RESETBIT), [_TOGGLEBIT](_TOGGLEBIT)
|