Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C]Tworzenie typów n-bit-owych

Ostatnio zmodyfikowano 2013-07-24 23:53
Autor Wiadomość
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.
P-88659
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
P-88714
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 :)
P-88715
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.
P-88717
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ć:
C/C++
class bla
{ public:
int zmienna: 20;
};

i byłoby jeszcze wygodniej.
P-88718
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.
P-88719
« 1 »
  Strona 1 z 1