惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Hacker News: Ask HN
Hacker News: Ask HN
WordPress大学
WordPress大学
T
The Blog of Author Tim Ferriss
The GitHub Blog
The GitHub Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 聂微东
A
About on SuperTechFans
Stack Overflow Blog
Stack Overflow Blog
雷峰网
雷峰网
Microsoft Azure Blog
Microsoft Azure Blog
腾讯CDC
爱范儿
爱范儿
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 【当耐特】
V
Visual Studio Blog
有赞技术团队
有赞技术团队
U
Unit 42
D
Docker
小众软件
小众软件
F
Full Disclosure
I
Intezer
Scott Helme
Scott Helme
P
Privacy International News Feed
P
Proofpoint News Feed
Engineering at Meta
Engineering at Meta
Google DeepMind News
Google DeepMind News
B
Blog
Martin Fowler
Martin Fowler
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Vercel News
Vercel News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Spread Privacy
Spread Privacy
宝玉的分享
宝玉的分享
S
Security Affairs
www.infosecurity-magazine.com
www.infosecurity-magazine.com
月光博客
月光博客
C
Cisco Blogs
云风的 BLOG
云风的 BLOG
Schneier on Security
Schneier on Security
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Threat Research - Cisco Blogs
量子位
Hacker News - Newest:
Hacker News - Newest: "LLM"
H
Heimdal Security Blog
N
Netflix TechBlog - Medium
H
Hacker News: Front Page
P
Proofpoint News Feed
G
GRAHAM CLULEY
V
Vulnerabilities – Threatpost
S
Schneier on Security

博客园 - zealsoft

洛谷 P1816 忠诚题解 洛谷 P2384 最短路题解 洛谷 P2725 邮票题解 洛谷 P2722 总分题解 洛谷 P1219 八皇后题解 洛谷 P2921 在农场万圣节Trick or Treat on the Farm题解 洛谷 P1162 填涂颜色题解 洛谷 P1330 封锁阳光大学题解 洛谷 P1032 字串变换题解 洛谷 P1443 马的遍历题解 洛谷 P1280 尼克的任务题解 洛谷 P1020导弹拦截题解 洛谷 P1141 01迷宫题解 VisualSVNServer无法卸载也无法安装,报告不是有效的MOF文件(0x8004401e)错误 视频捕捉的格式问题 一个VxWorks源代码网站 找个轻量级的Log库还挺难 W32.Downadup.autorun病毒的清除 如何用Visual Studio 2005编译Wireshark的插件
TAU G2中的BitString和OctetString
zealsoft · 2009-10-03 · via 博客园 - zealsoft

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之间的一个数了。