AntonioVillanueva

Conversion Array<UShort> to Array<UByte> KOTLIN

Nov 26th, 2021 (edited)
645
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 1.84 KB | None | 0 0
  1. /*
  2.  * Conversion Array<UShort> to Array<UByte>
  3.  * Antonio Villanueva Segura
  4.  */
  5.  
  6. fun main() {
  7.     var msg="abcdefg" //String
  8.     var msg1=msg.encodeToByteArray().toTypedArray() //Conversion to ByteArray
  9.    
  10.     ToShort(msg1)
  11.  
  12. }
  13.  
  14. /*Byte Short conversion function */
  15. fun ToShort(array:Array<Byte>){
  16.    
  17.     //Initialize an array variable of  UByte
  18.     var ubyteA= UByteArray(array.size)
  19.    // var ushortA=UShortArray((array.size) / 2)
  20.    var ushortA=Array<UShort>((array.size) / 2){0U}
  21.     var ushort:UShort //HL
  22.        
  23.     //Conversion Byte to UByte
  24.     for (index in array.indices){
  25.         ubyteA[index]=array[index].toUByte()
  26.     }
  27.    
  28.     //Conversion UByte Short
  29.     for (index in ushortA.indices){
  30.         ushortA[index] = ubyteA[index*2].toInt().shl(8).toUShort()
  31.         ushortA[index] = ubyteA[index*2+1].toInt().toUShort()  or ushortA[index]              
  32.     }
  33.    
  34.  
  35.     for (n in array){//Debug show Byte Array
  36.         println ("0x%x".format(n.toInt()))
  37.     }
  38.  
  39.  
  40.     for (n in ushortA){//Debug show UShort Array
  41.         println ("0x%x".format(n.toInt()))
  42.     }
  43.  
  44.    
  45. }
  46.  
  47.  
  48. //String to UShortArray
  49. fun toUShortArray(s:String):Array<UShort>{
  50.     var s2=s.encodeToByteArray().toTypedArray() //Conversion to ByteArray
  51.     var s3=Array<UByte>(s2.size){0U} //UByte Array
  52.     var s4=Array<UShort>(s2.size / 2 ){0U} //UShort Array
  53.     //Initialize UByte array
  54.     for (index in s2.indices){
  55.         s3[index]=s2[index].toUByte() //Conversion Byte -> UByte        
  56.     }
  57.     //Initialize UShort array
  58.     for (index in s4.indices){
  59.         s4[index]=s3[ index*2 + 0 ].toInt().shl(8).toUShort() //LOW
  60.         s4[index]=s3[ index*2 + 1 ].toUShort() or s4[index] //High      
  61.     }
  62.    
  63.    
  64.     //Show  UShort 16bits Array
  65.     for (elem in s4){
  66.         println ("0x%X".format(elem.toInt()))
  67.     }
  68.  
  69.     return s4
  70.    
  71. }
  72.  
  73.  
Add Comment
Please, Sign In to add comment