Hi to everyone first post, well letssss goo (no pun !)
I’m trying to make bitwise calculations with binary values, but in the first type (AND) everything goes well but for every other operation the result is not what i want. The value is always 0000.
Even when i println the values they are correct but the expression is not evaluated for some reason.
package main
import (
“fmt”
“os”
)
func main() { var val_a string var val_b string
fmt.Printf("Value A: ") fmt.Scanln(&val_a)
fmt.Printf("Value B: ") fmt.Scanln(&val_b)
if len(val_a) != len(val_b) { fmt.Println("Values are not the same size.") os.Exit(1) }
fmt.Println("A - AND") fmt.Println("B - OR") fmt.Println("C - XOR")
var resp string
fmt.Printf("What Type of operation you want to do: ") fmt.Scanln(&resp)
var resultado string
if resp == "A" { fmt.Println("calculating AND...") if len(val_a) == len(val_b){ for i := 0; i < len(val_a); i++ { if string(val_a[i]) == "0" || string(val_b[i]) == "0" { resultado += "0" } else if string(val_a[i]) == "0" || string(val_b[i]) == "1" { resultado += "0" } else if string(val_a[i]) == "1" || string(val_b[i]) == "0"{ resultado += "0" } else if string(val_a[i]) == "1" || string(val_b[i]) == "1" { resultado += "1" } }
} }
if resp == "B" { fmt.Println("calculating OR...") if len(val_a) == len(val_b){ for i := 0; i < len(val_a); i++ { if string(val_a[i]) == "0" || string(val_b[i]) == "0" { resultado += "0" } else if string(val_a[i]) == "0" || string(val_b[i]) == "1" { resultado += "1" } else if string(val_a[i]) == "1" || string(val_b[i]) == "0"{ resultado += "1" } else if string(val_a[i]) == "1" || string(val_b[i]) == "1" { resultado += "1" } }
} }
if resp == "C" { fmt.Println("calculating XOR...") if len(val_a) == len(val_b){ for i := 0; i < len(val_a); i++ { if string(val_a[i]) == "0" || string(val_b[i]) == "0" { resultado += "0" } else if string(val_a[i]) == "0" || string(val_b[i]) == "1" { resultado += "1" } else if string(val_a[i]) == "1" || string(val_b[i]) == "0" { resultado += "1" }else if string(val_a[i]) == "1" || string(val_b[i]) == "1" { resultado += "0" } } } }
fmt.Println("Result is:", resultado)
}