Привет, объясните пожалуйста в чем суть и как понять работы побитово с десятичными числами ?
есть программа , она должна брать определенное количество битов с определенного места
для примера с двоичным числом. если я правильно понимаю.
x= 10101111
p=2
n=2
1)x>>(p+1-n)
x>> 1 = 01010111
2)~(~0 сдвиг влево n)
~0 = 11111111
11111111<<2 = 11111100
~11111100=00000011
3)01010111 И(побитовое) 00000011 = 00000011
ответ 00000011
#include <stdio.h>
#include <conio.h>
unsigned getbits(unsigned x, int p, int n){
return (x >> (p+1-n)) & ~(~0 << n);
}
void main(){
printf("%d",getbits(1010,2,3));
getch();
}