Sto utilizzando un linguaggio di programmazione (più un linguaggio di scripting) che non supporta alcun operatore di bit come AND, OR, XOR, NOT (e anche shift).
Operazioni aritmetiche e logiche comuni come + - * /% > > = < < = ==! =, logico AND, OR, NOT e il flusso di controllo (while, for, if, ...) sono tuttavia supportati. È come un "sottoinsieme di C", ma senza questi operatori binari. La mia domanda non è comunque indirizzata a quella lingua particolare.
Mi chiedevo se esiste un modo (matematico?) per impostare e controllare un bit in una posizione specifica in un linguaggio di programmazione che non supporta le operazioni bit a bit:
a = 0; //00000000b
a = togglebit(a, 5); //00100000b
a = togglebit(a, 2); //00100100b
a = 0xFE; //11111110b
bool result = checkbit(a, 4); //true
Ad esempio, c'è un modo per eseguire uno spostamento binario sinistro o destro usando la moltiplicazione o divisione integer:
a = a * 2; //similar to left shift : a = a << 1;
a = a / 2; //similar to right shift : a = a >> 1;
Sto cercando qualcosa di simile ma per impostare o controllare un flag.