0
我需要開發兩個函數來對字節進行組合和分離操作。將兩個字節轉換爲一個字節,反之亦然
public byte Combine(Byte a, Byte b)
{
// ... Operations ...
}
public byte[] Separate(Byte input)
{
// ... Operations ...
}
public static void Main(String[] args)
{
Byte a, b, c;
a = <SOME BYTE VALUE>;
b = <SOME OTHER BYTE VALUE>;
Console.Writeline("Before Operation");
Console.Writeline("a = " + Convert.ToString(a, 2));
Console.Writeline("b = " + Convert.ToString(b, 2));
// Combine Function called...
c = Combine(a, b);
// Separate Function called...
byte[] d = Separate(c);
a = d[0];
b = d[1];
Console.Writeline("After Operation");
Console.Writeline("a = " + Convert.ToString(a, 2));
Console.Writeline("b = " + Convert.ToString(b, 2));
Console.ReadKey();
}
我已經試過像進行組合AND,OR,XOR,NAND,NOT和LEFT以及這個右SHIFT操作來實現上述功能很多東西。
我只想知道是否有任何方法可以做到這一點,或者Wether寫這種類型的函數是完全可能的。
請給我寶貴的建議和意見...
這是不可能的。請參閱鴿子的原理。 – user1937198 2014-10-06 11:21:13
沒有可能將兩個字節存儲爲一個字節,以允許重現輸入。我看到在Int32中存儲兩個'Int16'數字的唯一方法 - 它可以通過一個小的kownledge來完成,如何存儲32位int並移位操作。 – 2014-10-06 11:21:25
您正在將一組較大的值(2個字節)轉換爲較小的一組(1個字節)。您肯定會碰到衝突,因此無法可靠地將1個字節映射回原來的2個字節。 – juharr 2014-10-06 11:21:39