求实现代码(100分)

  • 主题发起人 主题发起人 吴剑明
  • 开始时间 开始时间

吴剑明

Unregistered / Unconfirmed
GUEST, unregistred user!
将字符流顺序放入一个 24 位的缓冲区,缺字符的地方补零。然后将缓冲区截断成为 4 个
部分,高位在先,每个部分 6 位。

如何实现,请给出代码。谢谢
 
struct TBitBuffer
{
unsigned Part1 : 6;
unsigned Part2 : 6;
unsigned Part3 : 6;
unsigned Part4 : 6;
};

struct TByteBuffer
{
BYTE Part1;
BYTE Part2;
BYTE Part3;
};

union Buffer
{
TBitBuffer BitBuffer;
TByteBuffer ByteBuffer;
};
 
老大,我还没这么快学会VC呢。:(
 
这样吧:
TStringPacket = record
case integer of
0:( String_Part: Array[0..23] of Char);
1:( CharArray1: Array[0..5] of Char;
CharArray2: Array[0..5] of Char;
CharArray3: Array[0..5] of Char;
CharArray4: Array[0..5] of Char);
end;

var
p: ^TStringPacket;
begin
New(p);
ZeroMemory(p,SizeOf(TStringPacket));
p^.String_Part:='aaaaaabbbbbbccccdddd';
Showmessage(String(p^.CharArray1));
Showmessage(String(p^.CharArray2));
Showmessage(String(p^.CharArray3));
Showmessage(String(p^.CharArray4));
Dispose(p);
end;

 
老吴,你不是在学习 c++ 吗?
 
还没这么快学会啊。:(
问个弱智点的问题: 这里的位是指BIT还是其他的啊?hopfield给的都是CHAR??
 
这里底位应该是Byte(char)位吧?
你看:
>将字符流顺序放入一个 24 位的缓冲区,缺字符的地方补零。然后将缓冲区截断成为 4 个
^^^^^^ ^^^^^^^^^^^^^^^^^^
hopfield的方法应该没错。
 
哈哈!不好意思,错了一个字!

>这里【底】位应该是Byte(char)位吧?
^^^^的

>你看:
>>将字符流顺序放入一个 24 位的缓冲区,缺字符的地方补零。然后将缓冲区截断成为 4 个
> ^^^^^^ ^^^^^^^^^^^^^^^^^^
>hopfield的方法应该没错。
 
一个字符至少也有一个Byte,怎么可能是Bit.
 
多人接受答案了。
 

Similar threads

后退
顶部