If you're printing a chain of additions out, each will have printf("%d + ",powexpression) except for the last which will have printf("%d,pow expression) so you'd have "128 +" (next loop) "0 +" (next loop) + ...+"0"
fgets just takes your array, binaryinput, the size of your array, 9 (as Narue pointed out), and stdin (as it can be used with other streams.
besides standard input). It's safer in that it takes in only your 8 characters and null terminates the string. getche is also specific to the conio library and is as xavier pointed out non-standard (as is system("pause") but we'll save that for another time.