forked from att/gopkgs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
atoi.go
112 lines (87 loc) · 2.72 KB
/
atoi.go
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
// vi: sw=4 ts=4:
/*
---------------------------------------------------------------------------
Copyright (c) 2013-2015 AT&T Intellectual Property
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at:
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
---------------------------------------------------------------------------
*/
/*
Mnemonic: clike.go: atoi
Absrtract: a clike atoi, and varients, that don't error when it encounters
a non-digit; returning 0 if there are no digits or if the number
is not valid, and stopping at the first non-valid digit. This supports
0x<hex> or 0<octal> values and should parse them stopping
conversion at the first non-appropriate 'digit'. This also allows
a lead +/-.
There is an extension on the C functions... if the value is
postfixed with M/K/G or m/k/g the return value will be
'expanded' accordingly with the capitalised values being
powrs of 10 (e.g. MB) and the lower case indicating powers
of 2 (e.g. MiB).
Input can be either a string or a byte array
*/
package clike
/*
Convert a string or an array of bytes into a 64 bit integer.
*/
func Atoi64( objx interface{} ) (int64) {
v := Atoll( objx )
return v
}
/*
Convert a string or an array of bytes into a 32 bit integer.
*/
func Atoi32( objx interface{} ) (int32) {
v := Atoll( objx )
return int32( v )
}
/*
Convert a string or an array of bytes into a 16 bit integer.
*/
func Atoi16( objx interface{} ) (int16) {
v := Atoll( objx )
return int16( v )
}
/*
Convert a string or an array of bytes into a default sized integer.
*/
func Atoi( objx interface{} ) (int) {
v := Atoll( objx )
return int( v )
}
/*
Convert a string or an array of bytes into an unsigned integer.
*/
func Atou( objx interface{} ) (uint) {
v := Atoull( objx )
return uint( v )
}
/*
Convert a string or an array of bytes into a 64 bit integer.
*/
func Atou64( objx interface{} ) (uint64) {
v := Atoull( objx )
return v
}
/*
Convert a string or an array of bytes into a 32 bit integer.
*/
func Atou32( objx interface{} ) (uint32) {
v := Atoull( objx )
return uint32( v )
}
/*
Convert a string or an array of bytes into a 16 bit integer.
*/
func Atou16( objx interface{} ) (uint16) {
v := Atoull( objx )
return uint16( v )
}