# Operators

This page is the "Operators" section of the Voxlang language reference. It is generated from LANGUAGE.md in the Voxlang compiler's own repository, so it says what the specification says and nothing more.

A URL is the heading, lowercased, with punctuation dropped and spaces turned into hyphens. Each "##" section of the spec is a page under /docs/, and every heading inside it is a fragment on that page, so "File I/O" is /docs/file-io/ and "Reading a whole file" inside it is /docs/file-io/#reading-a-whole-file.

As data: https://vox-lang.dev/docs/index.json lists every section and every heading with its URL, https://vox-lang.dev/docs/search.json carries one entry per heading with its first sentence and keywords, and https://vox-lang.dev/docs/anchors.json maps every slug to the page it lives on. Search is also a JSON endpoint: https://vox-lang.dev/docs/search?q=<words> returns ranked results as JSON, no page load.

Source: LANGUAGE.md at bf2cba0, 2026-08-22. https://github.com/Vox-lang/vox/blob/bf2cba037976586c30d22a48e7b7246d347f54a1/LANGUAGE.md

[Reference](https://vox-lang.dev/docs/) > Operators

## Arithmetic Operators

| Operator | Keywords |
| --- | --- |
| Addition | `add`, `plus` |
| Subtraction | `subtract`, `minus` |
| Multiplication | `multiply`, `times` |
| Division | `divide` |
| Modulo | `modulo`, `mod`, `remainder` |

## Comparison Operators

| Comparison | Syntax |
| --- | --- |
| Equal | `is equal to`, `is` |
| Not Equal | `is not equal to`, `is not` |
| Greater Than | `is greater than` |
| Less Than | `is less than` |
| Greater or Equal | `is greater than or equal to` |
| Less or Equal | `is less than or equal to` |

## Logical Operators (table)

| Operator | Keyword |
| --- | --- |
| And | `and` |
| Or | `or` |
| Not | `not`, `isn't`, `aren't` |

`isn't` and `aren't` are contractions, and each stands for **two** words: `isn't` is `is not`, `aren't` is `are not`. Write them exactly where the spelled-out pair belongs — `If v1 isn't v2 then,` is `If v1 is not v2 then,` — and write a bare `not` everywhere no `is`/`are` belongs. These two are the only contractions in Vox: everywhere else an apostrophe is the possessive marker, a quoted name, or a character literal, and a word like `don't` or `it's` is not Vox (`it's length` is the possessive on a variable called `it`). See [Names and strings](https://vox-lang.dev/docs/names-and-strings/).

## Bitwise Operators

| Operator | Keywords |
| --- | --- |
| Bitwise AND | `bit-and` |
| Bitwise OR | `bit-or` |
| Bitwise XOR | `bit-xor` |
| Shift Left | `bit-shift-left` |
| Shift Right | `bit-shift-right` |

**Examples:**

```
a number called lhs is 0b11110000.
a number called rhs is 0b10101010.

(Bitwise AND)
a number called result is lhs bit-and rhs.

(Bitwise OR)
Set result to lhs bit-or rhs.

(Bitwise XOR)
Set result to lhs bit-xor rhs.

(Bit shifting)
Set result to lhs bit-shift-left 2.
Set result to lhs bit-shift-right 4.

(Chained operations)
Set result to value bit-shift-right 8 bit-and 0xFF.
```
