BITS
Section: User Commands (1)
Updated: 202-0-04
Index
Return to Main Contents
NAME
bits - convert bit masks or lists from/to various formats
SYNOPSIS
bits [-h] [-V] [-w number] [mode] [mask|list]...
DESCRIPTION
The bits utility converts between bit masks and bit lists.
It supports combining multiple masks or lists using bitwise operations.
POSITIONAL ARGUMENTS
mask
-
A set of bits specified as a hexadecimal mask value
(for example: 0xeec2).
list
-
A set of bits specified as a comma-separated list of bit IDs
(for example: 1,5,29,32).
If no argument is specified, the sets of bits will be read from
standard input, one group per line.
Consecutive IDs can be compressed as ranges
(for example: 5,6,7,8,9,10 -> 5-10).
Optionally, if an argument starts with a comma, it will be
parsed as a single hexadecimal mask split in 32-bit groups
(for example: ,00014000,00000000,00020000 -> 17,78,80).
By default, all groups will be ORcqed together. If a group has one of
the prefixes &, ^, or ~, it will be combined with the
resulting mask using a different binary operation:
&mask|&list
-
The group will be combined with a binary AND operation.
That is: all bits that are set to 1 in the group AND in the combined groups
so far will be preserved as 1. All other bits will be reset to 0.
^mask|^list
-
The group will be combined with a binary XOR operation.
That is: all bits that are set to 1 in the group AND to 0 in the combined
groups so far (or the other way around) will be set to 1.
Bits that are set both to 1 or both to 0 will be reset to 0.
~mask|~list
-
All bits set to 1 in the group will be cleared (reset to 0) in the combined
groups so far.
OPTIONS
-w number, --width number
-
The maximum number of bits in the masks handled by bits.
The default is 8192. Any bit larger than this number will be truncated.
-h, --help
-
Display help text and exit.
-V, --version
-
Display version and exit.
CONVERSION MODE
One of the following conversion modes can be specified. If not specified, it
defaults to -m, --mask.
-b, --binary
-
Print the combined arguments as a binary mask value.
-g, --grouped-mask
-
Print the combined arguments as a hexadecimal mask value
in 32-bit comma-separated groups.
-l, --list
-
Print the combined arguments as a list of bit IDs.
Consecutive IDs are compressed to ranges.
-m, --mask
-
Print the combined arguments as a hexadecimal mask value (default).
EXAMPLES
-
~$ bits --mask 4,5-8 16,30
0x400101f0
~$ bits --list 0xeec2
1,6,7,9-11,13-15
~$ bits --binary 4,5-8 16,30
0b100_0000_0000_0001_0000_0001_1111_0000
~$ bits --list ,00300000,03000000,30000003
0,1,28,29,56,57,84,85
~$ bits --list 1,2,3,4 ~3-10
1,2
~$ bits --list 1,2,3,4 ^3-10
1,2,5-10
~$ bits --grouped-mask 2,22,74,79
8400,00000000,00400004
~$ bits --width 64 --list 2,22,74,79
2,22
AUTHORS
Robin Jarry.
REPORTING BUGS
For bug reports, use the
https://github.com/uti-linux/uti-linux/issues <L>issue tracker
AVAILABILITY
The bits command is part of the util-linux package which can be downloaded from
https://www.kernel.org/pub/linux/utils/uti-linux/ <L>Linux Kernel Archive
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- POSITIONAL ARGUMENTS
-
- OPTIONS
-
- CONVERSION MODE
-
- EXAMPLES
-
- AUTHORS
-
- REPORTING BUGS
-
- AVAILABILITY
-