What will be bytes occupied if we store 2 bytes value in 8 bytes column?
You can easily get the values you are after:

SELECT column_a, pg_column_size(column_a), 
       column_b, pg_column_size(column_b), 
       ... 
  FROM your_table;


This gives you the byte size of the given values stored in the columns, alongside with the values themselves.

A bigint will always consume 8 bytes, whereas a varchar just the size needed for the given value.  (The latter is tricky, read upon TOAST.)