Witam !
Mam pewien problem mianowicie na egzaminie najprawdopodobniej będę miał pytanie jak utworzyć tablicę o rozmiarze 41 bitów.
Czy toś mógłby pomóc ?
Jest to test z programowania C++ na kartce..
Możesz śmiało odpowiedzieć, że się nie da, o ile CHAR_BITS
jest różne od 1 i 41
Spróbuj tak
struct asdf{
unsigned int a : 41;
};
Powiedzcie czy jest jakiś sens zadawać takie pytania ?
Oraz dziękuje za odpowiedzi :)
@Omnadrenowy Rycerz: a
nie jest tablicą tutaj, pomijając już fakt, że nie znam architektury gdzie int
by miał więcej niż 32 bity.
@dusi007: nie ma sensu. Może pytanie miało być o 41 bajtów?
a jeśli tak to jak by wyglądała odpowiedź ?
Wtedy odpowiedź by brzmiała
Zapraszamy do dowolnego kursu, podpowiedź:
char
ma wielkość 1 bajta
Ewentualnie sprobuj czegoś takiego.
struct asdf {
int a : 41;
};
int main(){
struct asdf a;
a.a = 0xf;
int b;
for (b = 0; b < 41; ++b)
printf("%u\n", (a.a & (1<<b))?1:0);
}
opakuj to w klase i daj przeciążenie operatorów, standardowo chyba nie istnieje nic takiego, ale można to stworzyć.
printf wypisuje po jednym bicie ala tablica z iteratorem bitowym.
std::bitset<41> b;
To jest jedno z tych głupich pytań wymyślonych na siłę, bo ktoś ma małe pojęcie o programowaniu, a przy okazji spodobał mu się jakiś feature biblioteki/języka!
Jeśli się nie domyślisz co autor miał na myśli to nie da się normalnie odpowiedzieć.
Odpowiedź z std::bitset<41>
jest ok tak samo vector<boo> a(41, true);
, można też powiedzieć, że dosłanie tego zrobić się nie da.