Войти
RBlogФорум

Установка битов - DEC, HEX, побитовые операторы

#0
(Правка: 21:20) 18:27, 3 фев. 2019

порядок битов справа налево - 8765 4321
чтобы установить необходимый бит - начиная с 1 умножать по порядку на 2
или число 2 возвести в степень начиная с 0
2^0 = 1
2^1 = 2
2^2 = 4
2^3 = 8

через HEX логику - добавляя ноль в представление числа
чтобы установить 9ый бит надо к 0x1 добавить 2 нуля так как находится в 3их "значащих" 4ех битах = 0x100 = 256
0000 0001 = 0х1 = 1
0000 0010 = 0х2 = 2
0000 0100 = 0х4 = 4
0000 1000 = 0х8 = 8

0001 0000 = 0х10 = 16
0010 0000 = 0х20 = 32
0100 0000 = 0х40 = 64
1000 0000 = 0х80 = 128

также можно установить бит через побитовое смещение
установка 2го бита - 1 << 1 = 2
установка 9го бита - 1 << 8 = 256

установка нескольких битов - через побитовое "или"
4 | 1  = 0101 = 5
3 | 1 = 0011 | 0001 = 3

сверка на установленный бит - через побитовое "и"
3 & 2 = 2 - биты меньшего числа совпадают с частью битов большего числа
2 & 1 = 0

сброс бита - через побитовое "и" с "инверсией"
3 & ~1 = 0011 & 1110 = 0010 = 2

#1
(Правка: 20:47) 20:41, 3 фев. 2019

Что за фигня, первый класс, чесслово.
Установка бита n
x | (1 << n)
Сброс бита n
x & ~(1 << n)
Проверка бита n
if (x & (1 << n)) {...}
Всё.

#2
23:13, 3 фев. 2019

Olaf85 ну я это... ну вы поняли... хаааах ))

RBlogФорум