Oct, Oct$
Returns a string representing the octal value of a number.
Syntax:
- Oct$( number )
- Oct( number )
- number
- required Any valid numeric or string expression. If number is not a whole number, it is rounded to the nearest whole number before being evaluated.
The $-suffixed form returns a String; the unsuffixed form returns a Variant (String).
number can be any number in the range of a LongLong. The result has no leading zeros. A negative number gives its two’s-complement form at the width of its data type:
| If number is | Oct returns |
|---|---|
| Zero or a positive number | The digits of its value, up to 21 characters |
| A negative Integer | 6 characters |
| A negative Long | 11 characters |
| A negative LongLong, Single, Double, Currency or Decimal, or a string holding a negative number | 22 characters |
| Null | Null (unsuffixed form only) |
| Empty | Zero ("0") |
Note
VB6’s Oct takes only a number in the range of a Long, and raises error 6, Overflow, for any other. It gives a negative Single, Double, Currency or Decimal, or a string holding a negative number, the 11 characters of a Long: Oct(-1#) is "37777777777" in VB6 and "1777777777777777777777" in twinBASIC. 64-bit VBA takes the range of a LongLong and gives the 22 characters, as twinBASIC does.
Note
A Single or Double of 2^62 (4,611,686,018,427,387,904) or more, or less than -2^62, raises error 6, Overflow, though its value fits a LongLong, as in 64-bit VBA. A LongLong, Decimal or string of the same value is converted; so is Oct(CLngLng(x)).
Octal numbers can be represented directly by preceding numbers in the proper range with &O. For example, &O10 is the octal notation for decimal 8.
Common Errors
| Error | When |
|---|---|
6 (&H6), Overflow | number is outside the range of a LongLong, or is a Single or Double less than -4,611,686,018,427,387,904 or greater than 4,611,686,018,427,387,903 |
13 (&HD), Type mismatch | number is a string that does not hold a number (a zero-length string included) |
94 (&H5E), Invalid use of Null | Oct$ is given a number that is Null |
Example
This example uses the Oct function to return the octal value of a number.
Dim MyOct
MyOct = Oct(4) ' Returns "4".
MyOct = Oct(8) ' Returns "10".
MyOct = Oct(459) ' Returns "713".