2014-11-20 84 views
1

我已經做了一個列轉置(見下面的第一部分),我正在與字節轉置一個圖像(用於加密的目的),因爲我使用二維數組,我不得不使用填充填充數組的剩餘內容我正在努力尋找一種有效的方式來在倒轉過程時移除填充而不會扭曲原始數據 - 請有人提供任何建議或指導或替代方案嗎?從列轉置刪除填充c#

  for (int i = 0; i < colsize; i++) 
      { 

       for (int j = 0; j < rowsize; j++) 
       { 

        if (itt < data.Length) 
        { 
         matrix[i, j] = data[itt]; 
        } 
        else 
        { 
         //padding array element with * 
        } 

        itt++; 
       } 
      } 

任何幫助將非常appreaciated

+0

'itt'中的數據量是否已知?或者你可以讓矩陣更大,還是可以存儲外部材料?矩陣中是否有可能出現越界值?如果以上所有都是負面的,那麼確定性方案可能是不可能的。請說明以上哪一項是真實的。 – 2014-11-21 12:37:17

+0

是in的數量是已知的,矩陣是一個固定的大小,因爲它是一個二維數組,所以理論上我不能讓它變大,並且矩陣中沒有越界值,因爲它是一個固定的大小 - 希望這有助於 – user2520014 2014-11-21 16:12:26

回答

1

你可以做的是模擬所謂PKCS#陣列內7填充。這意味着您將存儲剩餘數據量的最後一個元素。您可以簡單地檢索最後一個元素的值,該值確定未使用的數據量。在PKCS#7中,該填充值也在其他未使用的字節中重複使用,但這不是嚴格要求。

如果您沒有剩餘任何字節,則無法確定該值是否包含不應使用的值的數量,或者是否包含實際值。就像在PKCS#7填充中一樣,解決方案可能是添加額外的行。

顯然,從外部存儲填充長度或填充量也是一個選項。