1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
--- Copy from Lua Sumneko Lua
---@meta bit32
---@version 5.2
---@version 5.2
---
---
---
---[View documents](command:extension.lua.doc?["en-us/54/manual.html/pdf-bit32"])
---
---@class bit32lib
bit32 =
---
---Returns the number `x` shifted `disp` bits to the right. Negative displacements shift to the left.
---
---This shift operation is what is called arithmetic shift. Vacant bits on the left are filled with copies of the higher bit of `x`; vacant bits on the right are filled with zeros.
---
---
---[View documents](command:extension.lua.doc?["en-us/54/manual.html/pdf-bit32.arshift"])
---
---@param x integer
---@param disp integer
---@return integer
---@nodiscard
---
---Returns the bitwise *and* of its operands.
---
---[View documents](command:extension.lua.doc?["en-us/54/manual.html/pdf-bit32.band"])
---
---@return integer
---@nodiscard
---
---Returns the bitwise negation of `x`.
---
---```lua
---assert(bit32.bnot(x) ==
---(-1 - x) % 2^32)
---```
---
---
---[View documents](command:extension.lua.doc?["en-us/54/manual.html/pdf-bit32.bnot"])
---
---@param x integer
---@return integer
---@nodiscard
---
---Returns the bitwise *or* of its operands.
---
---[View documents](command:extension.lua.doc?["en-us/54/manual.html/pdf-bit32.bor"])
---
---@return integer
---@nodiscard
---
---Returns a boolean signaling whether the bitwise *and* of its operands is different from zero.
---
---[View documents](command:extension.lua.doc?["en-us/54/manual.html/pdf-bit32.btest"])
---
---@return boolean
---@nodiscard
---
---Returns the bitwise *exclusive or* of its operands.
---
---[View documents](command:extension.lua.doc?["en-us/54/manual.html/pdf-bit32.bxor"])
---
---@return integer
---@nodiscard
---
---Returns the unsigned number formed by the bits `field` to `field + width - 1` from `n`.
---
---[View documents](command:extension.lua.doc?["en-us/54/manual.html/pdf-bit32.extract"])
---
---@param n integer
---@param field integer
---@param width? integer
---@return integer
---@nodiscard
---
---Returns a copy of `n` with the bits `field` to `field + width - 1` replaced by the value `v` .
---
---[View documents](command:extension.lua.doc?["en-us/54/manual.html/pdf-bit32.replace"])
---
---@param n integer
---@param v integer
---@param field integer
---@param width? integer
---@nodiscard
---
---Returns the number `x` rotated `disp` bits to the left. Negative displacements rotate to the right.
---
---[View documents](command:extension.lua.doc?["en-us/54/manual.html/pdf-bit32.lrotate"])
---
---@param x integer
---@param distp integer
---@return integer
---@nodiscard
---
---Returns the number `x` shifted `disp` bits to the left. Negative displacements shift to the right. In any direction, vacant bits are filled with zeros.
---
---```lua
---assert(bit32.lshift(b, disp) ==
---(b * 2^disp) % 2^32)
---```
---
---
---[View documents](command:extension.lua.doc?["en-us/54/manual.html/pdf-bit32.lshift"])
---
---@param x integer
---@param distp integer
---@return integer
---@nodiscard
---
---Returns the number `x` rotated `disp` bits to the right. Negative displacements rotate to the left.
---
---[View documents](command:extension.lua.doc?["en-us/54/manual.html/pdf-bit32.rrotate"])
---
---@param x integer
---@param distp integer
---@return integer
---@nodiscard
---
---Returns the number `x` shifted `disp` bits to the right. Negative displacements shift to the left. In any direction, vacant bits are filled with zeros.
---
---```lua
---assert(bit32.rshift(b, disp) ==
---math.floor(b % 2^32 / 2^disp))
---```
---
---
---[View documents](command:extension.lua.doc?["en-us/54/manual.html/pdf-bit32.rshift"])
---
---@param x integer
---@param distp integer
---@return integer
---@nodiscard
return bit32