...
1
2
3
4
5
6
7
8 package net
9
10
11
12
13
14
15
16 const big = 0xFFFFFF
17
18
19
20 func dtoi(s string) (n int, i int, ok bool) {
21 n = 0
22 for i = 0; i < len(s) && '0' <= s[i] && s[i] <= '9'; i++ {
23 n = n*10 + int(s[i]-'0')
24 if n >= big {
25 return big, i, false
26 }
27 }
28 if i == 0 {
29 return 0, 0, false
30 }
31 return n, i, true
32 }
33
34
35
36 func xtoi(s string) (n int, i int, ok bool) {
37 n = 0
38 for i = 0; i < len(s); i++ {
39 if '0' <= s[i] && s[i] <= '9' {
40 n *= 16
41 n += int(s[i] - '0')
42 } else if 'a' <= s[i] && s[i] <= 'f' {
43 n *= 16
44 n += int(s[i]-'a') + 10
45 } else if 'A' <= s[i] && s[i] <= 'F' {
46 n *= 16
47 n += int(s[i]-'A') + 10
48 } else {
49 break
50 }
51 if n >= big {
52 return 0, i, false
53 }
54 }
55 if i == 0 {
56 return 0, i, false
57 }
58 return n, i, true
59 }
60
View as plain text