Co oznacza ten bit i czy liczbę ujemną, odpowiedź jest bardzo prosta. Bo się branża tak umówiła. Ale dokładniej i poważniej, obowiązuje standard
https://pl.wikipedia.org/wiki/IEEE_754 który opisuje format liczb zmiennoprzecinkowych i w nim ten bit ma znaczenie jakie opisałeś.
Co do liczb poza zmiennoprzecinkowymi, standard dla C i C++ nie definiuje sposobu przechowywania znaku. Wiadomo że większość kompilatorów stosuje uzupełnienie do 2 ale możesz spotkać się z nietypowymi formatami w DSP lub embedded.
Tu masz informację o kodzie uzupełnień do 2
https://pl.wikipedia.org/wiki/Kod_uzupe%C5%82nie%C5%84_do_dw%C3%B3ch
Jest jeszcze wiele różnych reprezentacji. Także stałoprzecinkowe. Ale to bardzo obszerny temat...