---
name: "BIS_fnc_bitflagsFlip"
type: function
status: ok
groups: ["Bitwise"]
arma3_since: "1.66"
locality: {"argument": null, "effect": null, "server_exec": false}
source: https://community.bistudio.com/wiki/BIS_fnc_bitflagsFlip
revid: 328595
updated: 2022-07-13T17:02:29Z
---

# BIS_fnc_bitflagsFlip

*Function · Bitwise · Arma 3 v1.66*

## Description

Flips one or more flags (set gets unset and vice versa) in the given flagset, represented with decimal or hexadecimal number

(Hexadecimal number representation is simply auto-converted into decimal by the engine)

To check which flags are present in given flagset use [BIS_fnc_bitflagsToArray](../functions/BIS_fnc_bitflagsToArray.md)

**Limitations**:

Due to various limitations of the Real Virtuality engine this function is
intended to work with unsigned 24 bit integers only. This means that the
supported range is 2^0...2^24 (1...16777216)

## Syntax

```sqf
[flagset, flag] call BIS_fnc_bitflagsFlip
```

**Parameters:**

- `flagset`: [Number](../topics/Number.md) - flagset
- `flag`: [Number](../topics/Number.md) - one or more flags to flip

**Returns:** [Number](../topics/Number.md)  - new flagset with given flag or flags flipped

## Examples

### Example 1

```sqf
[1 + 16, 8] call BIS_fnc_bitflagsFlip; // 25 (which is 1 + 8 + 16)
[25, 8] call BIS_fnc_bitflagsFlip; // 17 (which is 1 + 16)
[2 + 4 + 8, 2 + 8] call BIS_fnc_bitflagsFlip; // 4
[4, 2 + 8] call BIS_fnc_bitflagsFlip; // 14 (which is 2 + 4 + 8)
```

## See also

[BIS_fnc_bitflagsSet](../functions/BIS_fnc_bitflagsSet.md) · [BIS_fnc_bitflagsCheck](../functions/BIS_fnc_bitflagsCheck.md) · [BIS_fnc_bitflagsToArray](../functions/BIS_fnc_bitflagsToArray.md) · [BIS_fnc_bitflagsUnset](../functions/BIS_fnc_bitflagsUnset.md)

<sub>Source: [BI Community Wiki — BIS fnc bitflagsFlip](https://community.bistudio.com/wiki/BIS_fnc_bitflagsFlip) (revision 328595).</sub>
