Witam,
Mam następujący problem z językiem C++.
Mam bajt: char a = 5;
Jako liczba dwójkowa to 101.
1 Problem:
Chcę napisać funkcję która wykona xor dla konkretnego bajtu, na przykład:
bool xor_bitowy(char a)
{
}
Następnie funkcję xor_bitowy chcę użyć do operacji XOR na całej tablicy bajtów (prosta pętla).
2 Problem:
Chcę wyświelić liczbę np. 8 bitową typu char korzystając z operacji bitowych (od tyłu i od przodu). Myślałem aby użyć do tego celu operacji przesunięć.
Zaczynam od wyświetlenia od tyłu (bo wydaje się prostsze).
// wyswietla liczbe binarnie od tylu
#include <iostream>
using namespace std;
int main()
{
char a = 5;
for(int i = 1; i <= a; i << 1) {
if(i & 1)
cout << 1;
else
cout << 0;
}
cout << endl;
return 0;
}
W pierwszym przebiegu spodziewam sie, ze i:
00000001
W kolejnych..
00000010
00000100.
Zrobiłem to na kartce i jakby wcale nie przesuwał tych bitów.
3 Problem:
a może można odwrócić szybko kolejność bitów i nie trzeba robić przesunięcia w prawo?