| 1234567891011121314151617181920212223 |
- // Copyright 2011 The Snappy-Go Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style
- // license that can be found in the LICENSE file.
- // Package zigzag implements the zigzag mapping between signed and unsigned
- // integers:
- // +0 <--> 0
- // -1 <--> 1
- // +1 <--> 2
- // -2 <--> 3
- // +2 <--> 4
- //
- // It is the same format used by protocol buffers. The format is described at
- // http://code.google.com/apis/protocolbuffers/docs/encoding.html
- package zigzag
- func Itou64(i int64) uint64 {
- return uint64(i<<1 ^ i>>63)
- }
- func Utoi64(u uint64) int64 {
- return int64(u>>1) ^ -int64(u&1)
- }
|