23 lines
422 B
Go
23 lines
422 B
Go
|
package binary
|
||
|
|
||
|
import "fmt"
|
||
|
|
||
|
// ParseBinary takes a binary string and returns the
|
||
|
// integer representation of it.
|
||
|
func ParseBinary(bin string) (int, error) {
|
||
|
var ret int
|
||
|
currSpot := 1
|
||
|
for len(bin) > 0 {
|
||
|
v := bin[len(bin)-1]
|
||
|
if v != '0' && v != '1' {
|
||
|
return 0, fmt.Errorf("Invalid String")
|
||
|
}
|
||
|
if v == '1' {
|
||
|
ret = ret + currSpot
|
||
|
}
|
||
|
currSpot = currSpot * 2
|
||
|
bin = bin[:len(bin)-1]
|
||
|
}
|
||
|
return ret, nil
|
||
|
}
|