În programare, conceptul de steag se referă la unul sau mai mulți biți de memorie utilizați pentru a stoca o combinație sau un cod binar care caracterizează starea unui obiect. Steaguri se găsesc de obicei în anumite structuri de date , cum ar fi intrările de baze de date, iar valorile lor sunt de obicei asociate cu semnificația structurilor de date din care fac parte. În multe cazuri, valoarea binară a unui steag este o reprezentare codificată a uneia dintre mai multe stări sau stări posibile ale unui obiect. În alte cazuri, valorile binare ale steagurilor pot reprezenta unul sau mai multe atribute într-un câmp de biți , adesea asociate cu capacități sau acces, cum ar fi „poate fi scris în” sau „poate fi șters”. Cu toate acestea, alte valori pot fi atribuite steagurilor. O utilizare a steagurilor este marcarea pentru a desemna o structură de date pentru prelucrare ulterioară.
Un exemplu de utilizare a steagurilor în limbajul C ( C ):
int f_have_five = 0 ; // flag pentru prezența unui cinci în tabloul int i ; int a [ 10 ]; // matrice de 10 elemente pentru ( i = 0 ; i < 10 ; i ++ ) { a [ i ] = rand () % 10 ; // inițializați tabloul cu valori aleatoare de la 0 la 9 dacă ( a [ i ] == 5 ) // dacă tabloul conține numărul 5, setați steag-ul la 1 f_have_five = 1 ; } dacă ( f_ave_cinci ) { /* efectuează unele acțiuni */ }Uneori este benefic să folosiți matrice de semnalizare pentru a semnaliza unele elemente dintr-o altă matrice pentru manipulare ulterioară.
În microprocesoare și alte dispozitive logice, steagurile sunt utilizate în mod obișnuit pentru a controla și a indica o stare intermediară sau finală și pentru a caracteriza rezultatul diferitelor operații. Microprocesoarele au de obicei un registru de stare care constă din aceste steaguri, utilizate pentru a indica diferite stări după o operație, cum ar fi dacă a avut loc o depășire aritmetică . Indicatoarele pot fi utilizate în controlul secvenței, în special în procesarea instrucțiunilor de ramificare condiționată . De exemplu, comanda je (Salt dacă Egal, Salt prin egalitate) din asamblatorul X86 va sări dacă steag-ul Z (zero, zero) a fost setat în operația anterioară.