boolesk flagga
En boolesk flagga , sanningsbit eller sanningsflagga inom datavetenskap är ett booleskt värde representerat som en eller flera bitar, som kodar en tillståndsvariabel med två möjliga värden.
Minnesanvändning
En enda byte kan innehålla upp till 8 separata booleska flaggor genom att mappa en boolesk flagga till varje bit, vilket gör det till en mycket ekonomisk och tät metod för datalagring. Detta är känt som en packad representation eller bitpackning, och den motsatta kodningen med endast en boolesk flagga per byte som används är känd som en sparse representation. För byte-adresserbart minne kräver den packade representationen en bitmask och bit-shift för att komma åt individuella flaggor i varje byte, vilket kan kräva ytterligare instruktioner, medan den glesa representationen inte kräver någon bitmaskering. Packade representationer är vanligare i hårdvaru- och processorregister som bitfält medan glesa representationer är vanligare i programvara som variabler med en eller flera byte i bredd, även om packade representationer också kan stödjas.
Effektivitet
De flesta datorspråk stöder inställning och testning av enstaka eller flera bitar i kombination för användning som sanningsindikatorer och vanligtvis kan upp till 256 olika kombinationer av villkor testas med bara en enda instruktion på en byte med hjälp av bitvisa operationer . Framsteg i processordesign och parallell beräkning innebär att ännu fler booleska algebraoperationer på booleska flaggor kan göras med bara en enda instruktion med SIMD -teknik, ofta implementerad i programmeringsspråk som kompilatorfunktioner .
Användande
Ibland skrivs program för att helt enkelt sätta flaggor när vissa villkor upptäcks, snarare än att ha flera kapslade villkorliga uttalanden (t.ex. om
s) som kan bli ganska komplexa. När alla villkor har testats för och alla flaggor är inställda på eller av på lämpligt sätt, testning påbörjas på olika kombinationer av villkor - med hänvisning till flaggorna istället för variablerna själva. Detta kan förenkla bearbetningen avsevärt och tillåter att beslutstabeller implementeras genom avbildning till deras binära representationer i minnet.