3.7 练习

1.在Java中,大于231-1(小于232-1)的数不能表示为int型,但是它们可以表示为32位的二进制数。试写一个方法将这类整数写入流中。这需要使用一个long型变量和一个OuputStream类实例作为参数。

2.扩展DelimFramer类,使其能够处理任意的多字节定界符。请确保你的实现是高效的。

3.扩展DelimFramer类实现“字节填充”,以使包含有定界符的消息也能够传输。(请在较好的计算机网络教程中参见该算法)。

4.假定所有字节值都有同样的可能,请问在一个包含了随机位值的消息中,通过VoteMsgBin的“魔术测试”的概率是多少?假设一个使用ASCII编码的文本消息发送给了一个处理二进制编码的投票消息voteMsg的程序,哪些字符出现在消息中的第一个字节时,可能使其通过“魔术测试”?

5.BruteForceEncoding的encodeIntBigEndian()只适用于满足了一定前提条件的情况下,如0≤size≤8等。修改该方法,使其能够对这些前提条件进行检测,当条件不满足时抛出异常。