Twoje PC  
Zarejestruj się na Twoje PC
TwojePC.pl | PC | Komputery, nowe technologie, recenzje, testy
B O A R D
   » Board
 » Zadaj pytanie
 » Archiwum
 » Szukaj
 » Stylizacja

 
M E N U
  0
 » Nowości
0
 » Archiwum
0
 » Recenzje / Testy
0
 » Board
0
 » Rejestracja
0
0
 
Szukaj @ TwojePC
 

w Newsach i na Boardzie
 
OBECNI NA TPC
 
 » fiskomp 20:48
 » SebaSTS 20:47
 » Dexter 20:47
 » Sherif 20:46
 » tian 20:46
 » DYD 20:46
 » Master/Pe 20:44
 » Demo 20:44
 » muerte 20:43
 » adolphik 20:40
 » Grza 20:39
 » Chavez 20:33
 » Hitman 20:32
 » Raist 20:32
 » NimnuL 20:30
 » Chrisu 20:28
 » pawcio 20:28
 » Gniew 20:26
 » GLI 20:17
 » Wojtekar 20:12

 Dzisiaj przeczytano
 41144 postów,
 wczoraj 25974

 Szybkie ładowanie
 jest:
włączone.

 
ccc
TwojePC.pl © 2001 - 2024
A R C H I W A L N A   W I A D O M O Ś Ć
    

czy jest taki typ w C++ jak 'boolean' w pascalu? , Ometoch 17/07/03 16:35
chodzi mi o stosowanie flag (0 albo 1). wiem że można kodować to w 1 bajcie co daje 8 flag ale to trzeba przeliczac za kazdym razem. chyba że ktoś ma na to jakiś sposób. (odpada sposób stosowania 1 bajtu na flage bo chodzi o to, żeby zajmowało jak najmniej miejsca w pamięci)

Najgorzej jest wiedzieć, że coś nie
chodzi jak powinno i nie wiedzieć
jak to naprawić !

  1. w czystym C , Jumper 17/07/03 16:57
    chyba nie ma, ale np. pod Visual C jest

    "Łatwiej wybaczyć wrogowi niż
    przyjacielowi"
    William Blake

  2. To może... , maciusk 17/07/03 17:31
    Spróbuj utworzyć własną strukturę i przypisać polom po jednym bicie.

    MSI 683dx

    1. no tak, tylko musze określić typ każdego rekordu :/.. , Ometoch 17/07/03 17:49
      ..a tu najmniejszy jest char (8 bitów)... chyba że źle zrozumiałem..

      Najgorzej jest wiedzieć, że coś nie
      chodzi jak powinno i nie wiedzieć
      jak to naprawić !

      1. uzyj pol bitowych, upewnij sie jednak, w jaki sposób sa one optymalizowane , bwana 17/07/03 18:48
        w Twoim kompilatorze (minimalny rozmiar danych czy maksymalna wydajnosc).

        "you don't need your smile when I cut
        your throat"

        1. pole bitowe definiuje sie np. tak: int flaga : 1; , bwana 17/07/03 18:54
          lub unsigned parka:2;

          kwestia tylko, jak kompilator zarzadza takimi polami, bo byc moze pole jednobitowe i tak zajmuje np. calego int-a w pamieci (bo tak jest szybciej), a moze jednak pola są "upakowywane" po kilka w ramach jednego adresu w pamieci - tego Ci niestety nie jestem w stanie powiedziec.

          "you don't need your smile when I cut
          your throat"

  3. Ale po co tyle kombinacji... , WooKy 17/07/03 19:10
    W c++ jest typ bool ktory moze byc true(1) albo false(0).
    No i po klopocie:-)

    bitnoi.se

    1. Po to, zeby zaoszczedzic pamiec z jakichs wzgledow, znanych autorowi pytania , bwana 17/07/03 19:54
      reprezentacja typu bool w C++ zajmuje 1 bajt w pamieci (a moze jedno slowo - nie pamietam). Osobiscie zgadzam sie ze zdaniem Pachury, operatory bitowe powinny wystarczyc, tym bardziej, ze niezaleznie od ustawien kompilatora mamy _gwarancje_ ze wszystkie bity faktycznie beda w tym samym bajcie (slowie, podwojnym slowie - zaleznie jaki typ sobie obierzemy za nosnik bitow).

      "you don't need your smile when I cut
      your throat"

  4. Oj, panowie... , pachura 17/07/03 19:16
    1. Typ "boolean" w Pascalu zajmuje jeden bajt.

    2. W C++ jest typ "bool". Zajmuje jeden bajt. W zwykłym C takiego typu nie było.

    3. Odczyt/zapis bitów z/do bajtu nie jest trudny. Wykorzystujemy operatory bitowe... np. żeby odczytać trzeci bit, należy najpierw przesunąć bajt o 3 w prawo (SHR), a następnie wyczyścić (zamaskować) pozostałe bity (AND).

    trzeci_bit = (bajt >> 3) & 1;

    4. Co do pamięci... kto oszczędza na flagach? Lepiej rozrzucić dane co quadword żeby procesor miał do nich szybszy dostęp.

    1. Tra... , Umek 17/07/03 20:42
      tylko że autor posta zapomniał zapodać na co to C++ ma być. I jak dla mnie jest to problem kluczowy. I do czego to właściwie potrzebne...
      Ale zawsze można sobie pooszczędzać i poświęcić na to masę obróbki dodatkowej :))))

    
All rights reserved ® Copyright and Design 2001-2024, TwojePC.PL