我有一组6位代表一个7位ASCII字符。我怎样才能从我拥有的6位中获得正确的7位ASCII码?只需追加一个零并执行按位OR?
谢谢你的帮助。
伦纳特
发布于 2009-04-20 13:15:12
ASCII本质上是一个7位字符集,因此您所拥有的不是“6位ASCII”。您的字符集由哪些字符组成?最简单的解码方法可能是这样的:
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位字符具有一定的意义。
发布于 2009-04-20 13:16:59
你必须告诉我们你的6位字符集是什么样子的,我不认为有一个标准。
进行反向映射的最简单方法可能是只使用查找表,如下所示:
static const char sixToSeven[] = { ' ', 'A', 'B', ... };这里假设空格编码为(二进制) 000000,大写A编码为000001,依此类推。
您使用6位字符中的一个索引到sixToSeven中,然后获取本地7位字符。
发布于 2009-04-20 13:51:35
我不能想象为什么你会得到旧的DEC-10/20 SIXBIT,但如果是这样,那么只需添加32 (十进制)即可。SIXBIT采用以空格( 32 )开头的ASCII字符,因此只需在SIXBIT字符上加上32即可获得ASCII字符。
https://stackoverflow.com/questions/768182
复制相似问题