Sha256: b1f0be9d13da0fb3d785968bce0c0b2b7013d140f0bef20c0e3312ecdd93d437

Contents?: true

Size: 508 Bytes

Versions: 274

Compression:

Stored size: 508 Bytes

Contents

package binary

import (
	"fmt"
)

const testVersion = 2

// ParseBinary converts a binary string to an integer value
func ParseBinary(bin string) (int, error) {
	val := 0
	for _, digit := range bin {
		switch digit {
		case '1':
			// multiply val by 2 and add 1
			val = (val << 1) + 1
		case '0':
			// multiply val by 2 and add 0
			val = (val << 1) + 0
		default:
			// if the character was not 1 or 0, it must be invalid
			return 0, fmt.Errorf("unexpected rune '%c'", digit)
		}
	}
	return val, nil
}

Version data entries

274 entries across 274 versions & 1 rubygems

Version Path
trackler-2.2.1.56 tracks/go/exercises/binary/example.go
trackler-2.2.1.55 tracks/go/exercises/binary/example.go
trackler-2.2.1.54 tracks/go/exercises/binary/example.go
trackler-2.2.1.53 tracks/go/exercises/binary/example.go
trackler-2.2.1.52 tracks/go/exercises/binary/example.go
trackler-2.2.1.51 tracks/go/exercises/binary/example.go
trackler-2.2.1.50 tracks/go/exercises/binary/example.go
trackler-2.2.1.49 tracks/go/exercises/binary/example.go
trackler-2.2.1.48 tracks/go/exercises/binary/example.go
trackler-2.2.1.47 tracks/go/exercises/binary/example.go
trackler-2.2.1.46 tracks/go/exercises/binary/example.go
trackler-2.2.1.45 tracks/go/exercises/binary/example.go
trackler-2.2.1.44 tracks/go/exercises/binary/example.go
trackler-2.2.1.43 tracks/go/exercises/binary/example.go
trackler-2.2.1.42 tracks/go/exercises/binary/example.go
trackler-2.2.1.41 tracks/go/exercises/binary/example.go
trackler-2.2.1.40 tracks/go/exercises/binary/example.go
trackler-2.2.1.39 tracks/go/exercises/binary/example.go
trackler-2.2.1.38 tracks/go/exercises/binary/example.go
trackler-2.2.1.37 tracks/go/exercises/binary/example.go