Ada 字符到整数的转换

Ada 字符到整数的转换,ada,Ada,我试图在Ada中将字符转换为整数,似乎没有任何效果,到目前为止,我已经能够让它从ASCII返回DEC,但我想返回0(整数) 字符'Pos('0') 返回48——我希望它返回0?您不能将字符直接转换为它们表示的整数值,但可以使用字符串: Some_Integer_Variable := Some_Integer_Type'Value ("0"); 或者,如果您有一个字符变量: Some_Integer_Variable := Some_Integer_Type'Value ((1 =

我试图在Ada中将字符转换为整数,似乎没有任何效果,到目前为止,我已经能够让它从ASCII返回DEC,但我想返回0(整数)

字符'Pos('0')


返回48——我希望它返回0?

您不能将字符直接转换为它们表示的整数值,但可以使用字符串:

   Some_Integer_Variable := Some_Integer_Type'Value ("0");
或者,如果您有一个字符变量:

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

48
0
的ascii值。减去48是安全的
49
1
@ElliottFrisch的ascii值。。。但这绝对不是正确的做法。如果字符实际上是一个数字(除非目标类型仅包括范围
0..9
),则会丢失检查。从字符到字符串的转换是否会增加一些开销?这取决于具体情况。在某些情况下,它可能会向内存足迹添加两个整数。