Как уже сказали, для компьютера оба представления одинаковы. Запись вида #nn говорит компилятору, что это символ (char) с кодом nn. Они равнозначны.
Теперь откуда получаются такие символы (когда смотришь в отладчике). В такой записи обычно представлены "непечатаемые" символы (с кодом < 32), т.к. отобразить напрямую их нельзя.
В исходном коде обычно такая запись так же применяется для ввода тех же "непечатаемых" символов. Хотя никто не мешает ее применять и для печатаемых.
Код:
var
c1, c2 : char;
begin
c1 := 'A';
c2 := #65;
If c1 = c2 then showmessage('matched') else showmessage('not matched');
end;
Этот код всегда будет давать сообщение matched, т.к. по сути для программы указаны 2 одинаковых значения, но в разной записи. Можно считать, что # это такаой вызов функции Chr для константы.