6-bit char

0

Witam poszukuje materialow oraz wskazowek w jaki sposob moge obciac 2bity najstarsze z chara i utworzyc swoj wlasny typ chara 6bitowego.

OA
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 10 lat
  • Postów:95
0

Próbowałeś pól bitowych?

Kopiuj
struct char6 {
    unsigned char x : 6;
};

Z ciekawości, po cóż Ci to potrzebne?

0

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 ;)

OA
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 10 lat
  • Postów:95
1

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?

Shalom
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
2

@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.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
edytowany 1x, ostatnio: Shalom
Zobacz pozostałe 2 komentarze
OA
A co z rejestrami x87 FPU, które są 80-bitowe? :>
_13th_Dragon
Tymi z FPU nie dasz rady posługiwać się tak aby operować na kilku bitach osobno.
OA
No jasne. Chodziło mi tylko o rozmiar, który nie jest potęgą dwójki.
_13th_Dragon
No to wspomnij też o rejestrach księgowych te wcale nie mają żadnych bitów.
OA
Dobra, już się nie czepiam.
_13th_Dragon
  • Rejestracja:prawie 20 lat
  • Ostatnio:13 dni
1

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óż ...


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.