yourbasic.org/golang

What’s up with the counting in this example?

``````const (
Century = 100
Year    = 001
)
// The world's oldest person, Emma Morano, lived for a century,
// two decades and two years.
`She was 118 years old.`

`010` is a number in base 8, therefore it means 8, not 10.

Integer literals in Go are specified in octal, decimal or hexadecimal. The number 16 can be written as `020`, `16` or `0x10`.

Literal Base Note
`020` 8 Starts with `0`
`16` 10 Never starts with `0`
`0x10` 16 Starts with `0x`

This bitwise operators cheat sheet covers all bitwise operators and functions in Go.

### Zero knowledge (trivia)

There are many ways to write zero in base 8 in Go, including `0`, `00` and `000`. If you prefer hexadecimal notation, you also have a smörgåsbord of options: such as `0x0`, `0x00` and `0x000` (as well as `0X0`, `0X00` and `0X000`). However, there is no decimal zero integer literal in Go.

In fact, Go doesn’t have any negative decimal literals either: `-1` is the unary negation operator followed by the decimal literal `1`.