I think it would be fair to say that binary files are machine code files, where source code files are files editable under whatever language they were written in; C, C+, C#, Fortran, Pascal, etc. (OK, I'm probably wrong in that some languages require a run-time environment to be executed in, and therefore are actually at some intermediate stage. Java for instance.)
In general, under Linux, binaries are machine code executable files.
Microsoft only supplies software as binaries, i.e. you can't change anything, it's "as is", Like it or Lump it!
So... That's my understanding as a non-programmer. Hopefully someone who "bit-fiddles" for a living can correct any of my misconceptions.