Kotlin แปลงตัวเลขเป็น Hex String และแปลงกลับ

       เริ่มจากการแปลงค่าตัวเลขกลมๆ ให้เป็นค่า Hex String โดยใช้ฟังก์ชั่น String.format


       จาก Code ดังรูปผลลัพธ์ที่ได้ตัวแปร hextext จะมีค่าเป็น "FF"
ทีนี้ถ้าหากว่าเราต้องการเพิ่มจำนวน Character อย่างเช่น เมื่อค่าเป็น 0 เราอยากให้ String ที่ออกมามีจำนวน 1Byte (ก็คือออกมาเป็น "00") ให้เราเปลี่ยน format ใน "%X" เป็น "%02X"

ผลลัพธ์ 1Byte "00"

ผลลัพธ์ 16Byte "00000000000000000000000000000000"

การแปลงค่า Hex String กลับไปเป็นค่าตัวเลขทำได้ดังนี้


       จาก Code ในรูป ทำการแปลงค่า Hex String "7FFFFFFF" ซึ่งเป็นค่าสูงสุดของ Integer ให้เป็นตัวเลขโดย Parameter 16 คือบอกว่าจะแปลงมันจากฐาน 16 นั่งเอง ผลลัพธ์ที่ได้คือ num = 2147483647
แต่ถ้าหากต้องการแปลงค่า Hex ที่ขนาดใหญ่ก็จะใช้ Long แทน

ผลลัพธ์คือ 4294967295

การแปลงค่าตัวเลขทศนิยมเป็น Hex String

       เลขทศนิยมหรือก็ค่า Float นั่นเอง ค่าที่จะมาใช้ในการแปลงทดสอบคือ 15.6789F ต้องมี F ลงท้ายเพื่อบ่งบอกว่าค่านี้เป็น floating number เหมือนกับค่า Long ที่ต้องมี L ลงท้ายด้วย เริ่มด้วยการทำให้ค่า float เป็นตัวเลขกลมๆก่อน


เราจะได้ค่า floatnum = 1098570950 จากนั้นแปลง
ให้ตัวเลขนี้เป็นค่า Hex ได้เลย


ผลลัพธ์ที่ได้คือ hexfloat = "417ADCC6

จากนั้นแปลงค่า Hex String กลับไปเป็น Floating number

ใช้ parseLong ให้ Hex String กลับไปเป็นตัวเลขก่อน

ผลลัพธ์ num = 1098570950

จานั้นก็แปลงค่าตัวเลขที่มีนั้นให้กลับไปเป็นทศนิยมดังเดิม


ผลลัพธ์ที่ได้ก็คือ float = 15.6789




ไม่มีความคิดเห็น:

แสดงความคิดเห็น