Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

1

27.09.2006, 15:54

Flags

hi leute.

wann ist eine flag eine flag? :D
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

27.09.2006, 15:58

Ist das ne Spaßfrage?
Ich würde sagen, wenn es nur 1 Bit gesetzt hat.

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

3

27.09.2006, 16:02

ja.. um genauzusein hätte ich gern ne definition von "FLAG"

also.. sind das schon flags?

C-/C++-Quelltext

1
2
3
4
// F E L D _ S T A T E N #################

const unsigned long FIELD_FIXED = 1;
const unsigned long FIELD_FREE = 2;
// [..]


.. ?
und wie meinst du 'nur 1 bit gesetzt' ?
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

4

27.09.2006, 16:28

Ja.
Aber als nächstes nicht 3 nehmen, sondern 4. Dann 8, 16, 32 ...

1 = 00000001
2 = 00000010
4 = 00000100
8 = 00001000
16 = 00010000
...

Nur so kann ja das bitweise Verknüpfen mit | und & funktionieren.

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

5

27.09.2006, 16:33

achso läuft das!
gut zu wissen..

kannst du mir evtl. auch verraten warum manche statt ganzzahlen hexadezimale zahlen verwenden?

= 0x0
= 0x1
usw.


*edit:
und warum muss das so sein 1, 2, 4, 8, 16 ..
könnte ja auch so gehn oder?


1 = 00000001
2 = 00000010
3 = 00000011
usw ..
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

Phili

unregistriert

6

27.09.2006, 16:44

@$nooc

Nee, muss immer 2^n sein, wobei n ne natzürliche Zahl sein uss. Sonst würdest du ja mehrere Bits auf einmal setzen.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

7

27.09.2006, 16:55

Ja, jedes Flag setzt nur 1 Bit.
D.h. wenn du eine 32-Bit-Zahl nimmst, kannst du maximal 32 verschiedene Flags benutzen.

Wenn man die hexadezimale Schreibweise verwendet, ist es einfacher als mit der dezimalen.

Quellcode

1
2
3
4
5
6
7
8
9
10
  1 = 0x00000001
  2 = 0x00000002
  4 = 0x00000004
  8 = 0x00000008
 16 = 0x00000010
 32 = 0x00000020
 64 = 0x00000040
128 = 0x00000080
256 = 0x00000100
...

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

8

27.09.2006, 22:23

ok .. danke leute :) mehr wollte ich nicht wissen
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

Databyte

Alter Hase

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

9

03.07.2007, 20:40

Sorry das ich noch in diesen ultra alten Thread :oops: :oops:


reinschreibe aber ich wollte noch mal wissen wie man jedes einzelne
bit jetzt testen kann ???

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

10

03.07.2007, 21:42

mit einer logischen & verknüpfung:

Quellcode

1
2
3
   01101110
 & 00001000
=  00001000


Quellcode

1
2
3
   01101110
 & 00010000
=  00000000


in c schaut das dann z.b. so aus:

C-/C++-Quelltext

1
2
3
4
5
6
...
const int FLAG = 2;
...

  if( value & FLAG )
    // FLAG ist gesetzt

Werbeanzeige