I can’t see how your command could work at all. Your read doesn’t store anything, only return an exit code that you are ignoring anyway.
Using a read, the following will work in interactive mode.
$ read line; echo $line | sed 's/^/obase=2;/' | bc
In a Clash of Code, you probably* want something more like:
$ cat | sed 's/^/obase=2;/' | bc
(* I never played one, so I can’t say for sure.)