zoukankan      html  css  js  c++  java
  • TAU G2中的BitString和OctetString

    TAU G2中比一般的UML工具多了一些预定义的类,如BitString和OctetString。这些类是和ASN.1所对应的,主要为了方便处理PDU编码,这是针对通信协议软件开发设计的。一般我们喜欢使用BitString类,因为它更方便和直观。不过最近遇到一个小问题,就是如果使用BitString类,在处理比较长的PDU串时,有时无法传递到环境函数中。为了解决这个问题,一个解决办法就是采用OctetString类。

    BitString类在内存中用一个字节存储一个比特位,而OctetString类使用一个字节存储8个比特位,从这点可以看出OctetString更节省内存,所以在和环境函数的通信中更为有利,所以在环境函数的信号参数定义中推荐使用OctetString

    在TAU G2中,要实现BitString和OctetString之间的转换也是非常容易的。

    BitString b, p;
    OctetString s;

    = '010'b;
    = OctetString(b); // 将BitString转换为OctetString
    = s.BitString(s); // 将OctetString转换为BitString

    在将BitString转换为OctetString时,如果BitString的长度不是8的倍数,TAU G2会在BitString后面补零。对于上面的例子,s将为'01000000'b。

    在TAU G2生成的C代码中,BitString和OctetString实际上是一个东西,所以使用OctetString代替BitString之后,环境函数中的绝大多数代码不需要修改,只是要注意OctetString的Bits数组中的每个元素不再是0和1,而是0到255之间的一个数了。
  • 相关阅读:
    2-SAT
    模板 两次dfs
    SG函数与SG定理
    NIM博弈
    python 给小孩起名
    pytest 数据驱动
    pytest 结合selenium 运用案例
    字符串的转换方法与分割
    字符串的方法
    字符串常量池与字符串之间的比较
  • 原文地址:https://www.cnblogs.com/zealsoft/p/1577811.html
Copyright © 2011-2022 走看看