获取与e中的数字相对应的字母(IEEE 1646)

时间:2014-11-21 16:04:37

标签: specman e

我想将整数值转换为字符串字符,如下所示:

0"a"

1"b"

依此类推

26"z"

有没有办法在没有大案例陈述的 e 中执行此操作?

注意:e是强类型的,并且不可能对字符串值进行任何类型的算术运算。还没有char类似的类型。

另一个节点:对于那些对我的问题进行投票的C / C ++热门人来说,这并不像你想象的那样容易出问题。

2 个答案:

答案 0 :(得分:1)

您可以定义一个与字母表对应的新枚举类型,并使用枚举值由int值支持的事实,将整数列表转换为枚举列表或字符串。

考虑以下示例:

<'
type chars : [a, b, c, d, e, f, g];

extend sys {
    run() is also {
        var l : list of int[0..6];
        var s: string = "";

        gen l keeping {it.size() == 5};
        print l;
        for each in l { print it.as_a(chars); };

        for each in l { s = append(s, it.as_a(chars)); };
        print s;
    };
};        
'>

此示例的输出将为:

  l = 
0.      4
1.      0
2.      6
3.      4
4.      5
  it.as_a(chars) = e
  it.as_a(chars) = a
  it.as_a(chars) = g
  it.as_a(chars) = e
  it.as_a(chars) = f
  s = "eagef"

请注意,您可以为枚举中的元素指定自定义值。这样,您就可以将标准ASCII值分配给枚举元素。

 type chars : [a=10, b=11, c=12, d=13, e=14, f=15, g=16];

答案 1 :(得分:1)

您可以这样做:

{0c"a"+my_num}.as_a(string)

0c"a"表示字母&#39; a&#39;的ASCII值。将as_a()数字列表(实际上是字节)转换为字符串会创建一个字符串,其中每个字符都具有相应列表元素的ASCII值。