[C]Tworzenie typów n-bit-owych
Ostatnio zmodyfikowano 2013-07-24 23:53
Brezniew Temat założony przez niniejszego użytkownika |
[C]Tworzenie typów n-bit-owych » 2013-07-24 13:50:06 Witam. Jak w temacie potrzebuje utworzyć zmienną która rezerwuje w pamięci rozmiar 20 i 24 bitów, trudno to w C zrobić bo zmienne 8, 16, 32bitowe są bezproblemowe, nie wiem jak to zrobić, ale w asemblerze to jest łatwe więc może użyć wstawek. Potrzebuje tych zmiennych do dzielenia danych w os-ie i do tworzenia odpowiedników kodu w asm-ie. |
|
Admixior |
» 2013-07-24 22:55:39 Nie da się. Komputer ma adresowanie w bajtach. Nie wiem jak robiłeś to w asmie ale jedynym sposobem jaki mi przychodzi(szybkim) to jest AND z 20(24) bitami zaznaczonymi, ale i tak pamięci jest więcej zarezerwowanej. W c++ bym podał unie lub klasę z przeładowanymi operatorami. W C nie wiem czy jest podobne rzecz która ułatwi szybkie (pod względem pisania kodu) narzędzie
// Jeżeli mówisz że w assembly łatwo można ZAREZERWOWAĆ pamięć o wielkości 20 i 24* BITOW to podziel się. Chętnie zobaczę :)
*24 BITOW -> niby można 3 bajty, ale zrobienie takiego czegoś nie przyjdzie łatwo |
|
Mrovqa |
» 2013-07-24 22:59:31 Wiem, że w C++ istnieją tzw. pola bitowe, nie wiem jak jest w C. Rzekomo da się tworzyć pola o dowolnej liczbie bitów, jednakże nie mam z tym sporego doświadczenia - kiedyś próbowałem coś skompilować i na errorach się skończyło. Jeżeli znajdziesz jakieś działające rozwiązanie - chętnie je poznam :) |
|
Brezniew Temat założony przez niniejszego użytkownika |
» 2013-07-24 23:28:35 W asm-ie to 24-bitowe to robię tak: [SECTION .data] zmienna: times 3 db 0
;lub
[SECTION .bss]] zmienna: resb 3
A 20-bitowe to na stosie rezerwuje miejsce i wykonuje operacje na konkretnych bitach a pozostałe używam do innych celów. |
|
Admixior |
» 2013-07-24 23:42:42 A 20-bitowe to na stosie rezerwuje miejsce i wykonuje operacje na konkretnych bitach a pozostałe używam do innych celów. |
No to dokładnie tak możesz robić w c/c++ :) zmienna & 0x0fff ... itd W c++ mógłbyś pole bitowe zrobić: class bla { public: int zmienna: 20; };
i byłoby jeszcze wygodniej. |
|
Brezniew Temat założony przez niniejszego użytkownika |
» 2013-07-24 23:53:33 Dobra dzięki już wszystko wiem. Od razu zacznę pisanie kodu. Pozdrawiam xD. |
|
« 1 » |