首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C/C++:如何将6位ASCII转换为7位ASCII

C/C++:如何将6位ASCII转换为7位ASCII
EN

Stack Overflow用户
提问于 2009-04-20 13:12:49
回答 5查看 3.9K关注 0票数 2

我有一组6位代表一个7位ASCII字符。我怎样才能从我拥有的6位中获得正确的7位ASCII码?只需追加一个零并执行按位OR?

谢谢你的帮助。

伦纳特

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-04-20 13:15:12

ASCII本质上是一个7位字符集,因此您所拥有的不是“6位ASCII”。您的字符集由哪些字符组成?最简单的解码方法可能是这样的:

代码语言:javascript
复制
char From6Bit( char c6 ) {
    // array of all 64 characters that appear in your 6-bit set
    static SixBitSet[] = { 'A', 'B', ... }; 
    return SixBitSet[ c6 ];
}   

脚注:6位字符集在旧的DEC硬件上非常流行,其中一些,如DEC-10,具有36位体系结构,其中6位字符具有一定的意义。

票数 8
EN

Stack Overflow用户

发布于 2009-04-20 13:16:59

你必须告诉我们你的6位字符集是什么样子的,我不认为有一个标准。

进行反向映射的最简单方法可能是只使用查找表,如下所示:

代码语言:javascript
复制
static const char sixToSeven[] = { ' ', 'A', 'B', ... };

这里假设空格编码为(二进制) 000000,大写A编码为000001,依此类推。

您使用6位字符中的一个索引到sixToSeven中,然后获取本地7位字符。

票数 2
EN

Stack Overflow用户

发布于 2009-04-20 13:51:35

我不能想象为什么你会得到旧的DEC-10/20 SIXBIT,但如果是这样,那么只需添加32 (十进制)即可。SIXBIT采用以空格( 32 )开头的ASCII字符,因此只需在SIXBIT字符上加上32即可获得ASCII字符。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/768182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档