在解碼時遇到了大小端交換的問題,需要把高低字節的16進制值進行互換,這里一時間不知道怎么操作,本來打算先把16進制轉字節數組,算出字節數組的大小,然后通過模2得到0,1,來判斷是否為奇數位和偶數位,因為得到的數據為雙數字節,這里只需要實現奇數位偶數位的數據互換就可以了,但是實現過程中發現,當第一個余數為0時,把他插入數組的第二個位置并不能實現,因為此時是一個空數組,最后得到的數據也只是一個數。
因此得到一個結論,空數組不能插入0以外的索引值。
后面改正了一下方法,因為要實現奇數位和偶數位互換,我們可以采取先刪除一個,再插入一個的做法,這樣的話就不會因為空數組導致不能互換的結果。當余數為0時證明是奇數位的數據進來,我們只需要刪除掉當前索引位置的數據,這里給到長度為1索引就用for循環的i值,然后進行刪除操作,并把刪除后的值通過另一個移位寄存器傳過來,傳到下一次插入數據備用,當余數為1時間證明已經到了偶數位,我們只需要把上一次刪除的數據插入進去,也是利用for循環中i的值,就可以實現大小端數據互換的操作。
這里我給他加了一個校驗,防止得到的數據不是偶數位的情況,這樣的話就需要去排查一下哪里出了問題。然后跳出一個提示,提醒我們去排查一下。