If "a" is declared as a byte, then I do not understand the difference between sending one byte and sending the value.
You do realize that the compiler accepts
byte a = 0B000001;
but not
byte a = B000001;
unless B000001 is declared somewhere else (either as a macro or as a variable) ?
Are you really intending to write binary values, or do you intend something else? I am confused.