2016-03-06 1 views
0

Я пытаюсь превратить символы в целые числа в Ada, ничего не работает, я до сих пор смог вернуть DEC из ASCII, но я хотел бы вернуть 0 (целое число).Характер для Integer Ada

Character'Pos ('0');

возвращает 48 - Я хочу, чтобы он вернулся 0?

+1

'48 'является значением ascii' 0'. Безопасно вычесть 48. '49' - это значение ascii' 1'. –

+0

@ ElliottFrisch ... но это определенно не было бы правильным способом сделать это. Вы потеряете проверку, если символ на самом деле является цифрой (если только целевой тип не включает диапазон «0 .. 9». –

ответ

3

Вы не можете преобразовывать символы непосредственно целочисленного значения, которые они представляют, но это можно делать со строками:

Some_Integer_Variable := Some_Integer_Type'Value ("0"); 

Или, если у вас есть переменная символов:

Some_Integer_Variable := Some_Integer_Type'Value ((1 => Character_Variable));