Enum Flags – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Enum Flags – .NET – Fórum – Programujte.comEnum Flags – .NET – Fórum – Programujte.com

 

Miro17010
Stálý člen
30. 6. 2009   #1
-
0
-

Ako funguju tie flagy, lebo ked ja si urobim svoje, neopakujem tie hodnoty 0x???, tak mi to dakedy vypise uplne odveci

na msdn je to takto:

[Flags]

enum Days2
{
None = 0x0,
Sunday = 0x1,
Monday = 0x2,
Tuesday = 0x4,
Wednesday = 0x8,
Thursday = 0x10,
Friday = 0x20,
Saturday = 0x40
}
class MyClass
{
Days2 meetingDays = Days2.Tuesday | Days2.Thursday;
}


Edit: A co znamena 0x???

Nahlásit jako SPAM
IP: 85.248.47.–
začinajúci programátor v .Net: C# & OpenTK: OpenGL( pouzivam ), OpenAL( zatial nepouzivam ), OpenCL( este som neskusal )
KIIV
~ Moderátor
+43
God of flame
30. 6. 2009   #2
-
0
-

To Miro1701 : notace pro zapis cisla v hexadeximalni soustave...
proste kazdy den je jako mocnina 2
tj:
0000 none (0)
0001 sunday (1)
0010 monday (2)
0100 tuesday (4)
...
00100000 friday (32)
01000000 saturday (64)

pak lze snadno vyuzit logicky and a or pro testovani a podobne...
tj & a |

Nahlásit jako SPAM
IP: 80.188.94.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Miro17010
Stálý člen
30. 6. 2009   #3
-
0
-

lenze ja neviem ako funguje to &, |, ze co to s tym spravi, tote operatory chapem len v podmienkach if, while,... alebo pri napr.:

bool x = y & x

Co je vlastne to iste ako podmienka if,...

Nahlásit jako SPAM
IP: 85.248.47.–
začinajúci programátor v .Net: C# & OpenTK: OpenGL( pouzivam ), OpenAL( zatial nepouzivam ), OpenCL( este som neskusal )
KIIV
~ Moderátor
+43
God of flame
30. 6. 2009   #4
-
0
-

& kdykoliv se na vstupu objevi 0 je vystup 0 (postupuje se jeste po jednotlivych bitech..)

A & B = Y

0 0 0
0 1 0
1 0 0
1 1 1


| kdykoliv se na vstupu objevi 1 je na vystupu take logicka 1
A | B = Y

0 0 0
0 1 1
1 0 1
1 1 1


jenze v C jsou obvykle sady bitu.. napriklad bajty...
tim padem & a | se aplikuje mezi bity na stejnych pozicich
ale to nemam chut moc rozepisovat...
lepsi je na to program v C
int i,j;
for ( i=0; i<=255; i++ ) for ( j=0 ; j <=255; j++ ) printf("%d | %d = %d %d & %d = %d\n", i , j , i | j , i , j , i & j );



Nahlásit jako SPAM
IP: 80.188.94.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Miro17010
Stálý člen
30. 6. 2009   #5
-
0
-

A ako este zistit ci, ma:

 enum autotuning

{
nitro, stresnyotvor, vynil,...
}

tuning = autotuning.nitro ( co vybrat | alebo &) autotuning.vynil;


auto napr. nitro

Edit: V code

Nahlásit jako SPAM
IP: 85.248.47.–
začinajúci programátor v .Net: C# & OpenTK: OpenGL( pouzivam ), OpenAL( zatial nepouzivam ), OpenCL( este som neskusal )
Miro17010
Stálý člen
30. 6. 2009   #6
-
0
-

To KIIV : cize:

0 = 0,
1 = 1,
2 = 10,
3 = 11,
4 = 100,
5 = 101,
6 = 110, ...

a ked dam

10 & 11 = 10 ??

Nahlásit jako SPAM
IP: 85.248.47.–
začinajúci programátor v .Net: C# & OpenTK: OpenGL( pouzivam ), OpenAL( zatial nepouzivam ), OpenCL( este som neskusal )
KIIV
~ Moderátor
+43
God of flame
30. 6. 2009   #7
-
0
-

To Miro1701 : normalne se enum mam pocit proste cisluje od bud nuly nebo 1 ... muzes zkusit vypsat jakou hodnotu ma nitro..
pokud ty parametry nemuzou byt zaroven tak to staci jen srovnavat primo s tim cislem... pokud ale mohou byt zaroven tak to proste nejde porovnavat jen tak


dejme tomu das dohromady nitro (1) stresnyotvor(2) a vznikne ti najednou vinil (3) ... no das tam 1+2 a uz nemas nitro a stresnyotvor ale vinil
jedinej zpusob je opravdu tema bitovejma operacema... nebo to rozdelit jinak

Nahlásit jako SPAM
IP: 80.188.94.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Miro17010
Stálý člen
30. 6. 2009   #8
-
0
-

totiz som prerabal a1b1c1, a1b1c2,...
na flagy a na msdn som si vsimol flagy
totiz ja to mam tak ze si mozem vybrat napr.: a1, a2, a3, b1, b2, c1, c2, c3, c4

ale asi to urobim cez struct a viac enumov.

Nahlásit jako SPAM
IP: 85.248.47.–
začinajúci programátor v .Net: C# & OpenTK: OpenGL( pouzivam ), OpenAL( zatial nepouzivam ), OpenCL( este som neskusal )
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 19 hostů

Podobná vlákna

Enum — založil crash

Odkaz na enum — založil TomBar

Enum - change value — založil Kenvelo

Enum - nefunguje — založil IDKFA

C++0X - enum class — založil Jan Kubalek

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý