Swift convertissant le tableau signé de Int en tableau non signé de Int

Comment convertir un tableau signé de [Int8] en un tableau non signé de [UInt8].

let arryData: [Int8] = [-108, 11, -107, -14, 35, -57, -116, 118, 54, 91, 12, 67, 21, 29, -44, 111] 

Je veux juste convertir ceci ci-dessus en tableau de Unsigned [UInt8]. Comment y parvenir rapidement? Merci d'avance.

Si vous avez l'intention de convertir des entiers 8 bits signés en entiers non signés avec la même représentation binary (par exemple -1 -> 255 ):

 let intArray: [Int8] = [0, 1, 2, 127, -1, -2, -128] let uintArray = intArray.map { UInt8(bitPattern: $0) } print(uintArray) // [0, 1, 2, 127, 255, 254, 128] 

[Int8] -> [UInt8]

Vous n'avez pas spécifié comment vous voulez traiter les valeurs négatives; en les returnnant à leur contrepartie positive ou en les retirant. Ci-dessous suit les deux cas.


Transformer les valeurs négatives en valeurs positives en inversant le signe:

 let arrayData: [Int8] = [-108, 11, -107, -14, 35, -57, -116, 118, 54, 91, 12, 67, 21, 29, -44, 111] let arrayDataUnsigned = arrayData.map { UInt8(abs($0)) } /* [108, 11, 107, 14, 35, 57, 116, 118, 54, 91, 12, 67, 21, 29, 44, 111] */ 

Ou, en supprimant les valeurs négatives:

 let arrayDataUnsigned = arrayData.flatMap { $0 < 0 ? nil : UInt8($0) } /* [11, 35, 118, 54, 91, 12, 67, 21, 29, 111] */