Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » 000 bis 111 als bool-array

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
25.10.2004, 23:41 Uhr
RedEagle



Hi, ich möchte die Zahlen von 0 bis 7 in ein bool-array speichern:

C++:
bool io[8][3] = {{false,false,false}{false,false,true}{false,true,false}{false,true,true}{true,false,false}{true,false,true}{true,true,false}{true,true,true}};



Was ist hir falsch??
Es kommen einige parse-errors
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
26.10.2004, 00:10 Uhr
Pablo
Supertux
(Operator)


ich würde sagen, zwischen den {false,false,false} und {false,true,false} (usw) fehlen die Kommas.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
26.10.2004, 00:17 Uhr
0xdeadbeef
Gott
(Operator)


Ich wär auch der Meinung, dass es sinnvoller wäre, direkt auf den Zahlen zu arbeiten und mit bit-operationen zu arbeiten. Beispielsweise:

C++:
bool has_bit(int number, int bit) {
  return (number >> (sizeof(int) * 8 - bit) & 1) != 0;
}


Oder, wenn du unbedingt das interface haben willst:

C++:
template <typename int_t>
struct bit_array_impl {
  typedef int_t integral_type;
private:
  integral_type number;
public:
  bit_array(integral_type x) : number(x) { }
  inline bool operator[](integral_type bit) { return (number >> (sizeof(integral_type) * 8 - bit) & 1) != 0; }
};

template <typename int_t> bit_array_impl bit_array(int_t x) { return bit_array_impl<int_t>(x); }

// ...

if(bit_array(7)[3]) {
  std::cout << "7 hat das dritte Bit gesetzt." << std::endl;
}



Bearbeitung:

Whoops, kleinen Tipfeeler korrigiert.


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra

Dieser Post wurde am 26.10.2004 um 14:24 Uhr von 0xdeadbeef editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
26.10.2004, 09:46 Uhr
RedEagle




@0xdeadbeef: Das ist nen Bischen zu kompliziert für mich
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
26.10.2004, 15:26 Uhr
(un)wissender
Niveauwart


@RedEagle
bool ist != bit, meisten ist bool ein Byte, kann aber auch ein dword sein oder sonst was.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
26.10.2004, 19:13 Uhr
RedEagle



Ich habe eine Klasse:

C++:
class ComPort
{
public:
    int   SetOPEN   (int PORT);
    int   SetCLOSE  (void);
    int   SetDTR    (bool mode); //Das ist der grund,
    int   SetRTS    (bool mode); //warum ich bool
    int   SetTXD    (bool mode); //genommen habe
    bool  GetCTS    ();
    bool  GetDSR    ();
    void  SetAll    (bool mode);
};



und wollte damit 3 LED's so ein- und aus- schalten, das "sie Zählen"


C++:
   for(int i=0; i<9; i++)
   {
    RTS(com,io[i][0]);
    DTR(com,io[i][1]);
    TXD(com,io[i][2]);
    Sleep(wait);
   }



(die Funktionen)

C++:
void RTS(ComPort com, bool on)
{
com.SetRTS(on);
}

////////////////////////////////////////////////////////////////////////////////

void DTR(ComPort com, bool on)
{
com.SetDTR(on);
}

////////////////////////////////////////////////////////////////////////////////

void TXD(ComPort com, bool on)
{
com.SetTXD(on);
}



Daher habe ich bool genommen.
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: