Croessmah
Ушел
13722 / 7974 / 912
Регистрация: 27.09.2012
Сообщений: 19,617
|
04.12.2012, 13:08
|
|

Сообщение от xtorne21st
Спасибо, но вы обнулили биты начиная с младшего разряда, а нужно начиная со старшего...
C++ | 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| #include <iostream>
void ShowBinary(int num){
size_t NUM_BITS=sizeof(num)*8;
for(int i=NUM_BITS-1;i>=0;--i)
std::cout<<((num & (1<<i))?'1':'0');
}
int foo(int num){
size_t NUM_BITS=(sizeof(num)-1)*8;
return (num & 0xF<<NUM_BITS);
}
int main()
{
int x=-1;
ShowBinary(x);
std::cout<<std::endl;
ShowBinary(foo(x));
std::cin.get();
return 0;
} |
|
Добавлено через 1 минуту
ну или вот:
C++ | 1
2
3
| int foo(int num){
return num & 0xF;
} |
|
смотря что Вам нужно.
0
|