Witam poszukuje materialow oraz wskazowek w jaki sposob moge obciac 2bity najstarsze z chara i utworzyc swoj wlasny typ chara 6bitowego.
6-bit char
- Rejestracja: dni
- Ostatnio: dni
- Postów: 95
Próbowałeś pól bitowych?
struct char6 {
unsigned char x : 6;
};
Z ciekawości, po cóż Ci to potrzebne?
- Rejestracja: dni
- Ostatnio: dni
Dziekuje. Projekt ma limity pamieci i wymaga prawidlowego zarzadzania nia :) glowny algorytm programu dziala na literach a-z, a wiec 2ost bity sa mi zbedne co w przeliczeniu daje mi nawet 25% oszczednosc ;)
- Rejestracja: dni
- Ostatnio: dni
- Postów: 95
Takie podejście nie da Ci żadnej oszczędności pamięci - ta struktura dalej będzie zajmować 1 bajt. Jedynie zachowanie będzie symulowane na identyczne z 6-bitowym (wraparound przy wartości 64). Jeżeli naprawdę potrzebujesz tak ekstremalnej oszczędności pamięci będziesz musiał poszukać czegoś innego. Można użyć np. std::bitset albo ręcznie podzielić jakiś duży typ całkowitoliczbowy i bawić się w wyłuskiwanie wartości. Szczerze mówiąc, to wątpię, żeby ta "oszczędność" miała w ogóle jakiś sens. Czy na pewno jest konieczna?
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Space: the final frontier
- Postów: 26433
@XYZy nic ci to nie da, bo procesor nie potrafi operować na zmiennych 6 bitowych ;] Procesor ma rejestry o rozmiarach które są potęgami 2 wyrażonymi w bajtach (1, 2, 4...).
Napisz co konkretnie próbujesz zrobić, bo jest to klasyczna sytuacja na tym forum, że zamiast spytać "jak rozwiązać problem X" użytkownik pyta "jak zrobić bardzo dziwną rzecz", która to rzecz jest potrzebna w jego rozwiązaniu, które najczęściej jest przekombinowane albo błędne.
- Rejestracja: dni
- Ostatnio: dni
Może nieco zobrazuję to co pisze @Shalom wyżej.
Zamiast spytać - "Czym wykopać dół?" pytają: - "Jak utwardzić rękawice żeby zbyt szybko się nie ścierały?"
Przy czym na pierwsze pytanie to mamy jednoznaczną odpowiedź, zaś na drugie ... no cóż ...