လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Sensoror Data တွင် Hexadecimal တန်ဖိုးများကိုဖတ်ရန် Hexdec ကိုသုံးပါ

Sensoror Data တွင် Hexadecimal တန်ဖိုးများကိုဖတ်ရန် Hexdec ကိုသုံးပါ

gitbox 2025-05-28

HexDec function ကဘာလဲ။

HexDec သည် Hexadecimal Strings ကိုသက်ဆိုင်ရာဒ decimal မကိန်းများသို့ပြောင်းလဲရန် PHP တွင် built-in function တစ်ခုဖြစ်သည်။ အသုံးပြုရန်အလွန်လွယ်ကူသည်။

 int hexdec ( string $hex_string )
  • $ hex_string သည် input hex string, case-management;

  • ပြန်လာတန်ဖိုးသည်သက်ဆိုင်ရာဒ decimal မကိန်းဖြစ်သည်။


အဘယ်ကြောင့် hexadecimal အတွက်အာရုံခံကိရိယာဒေတာဖြစ်သနည်း

Sensor သည် (serial port, I2C, SPI စသည်တို့) မှတဆင့်အချက်အလက်များကိုအချက်အလက်များကိုပေးပို့သည့်အခါ, ဥပမာအားဖြင့်အာရုံခံကိရိယာမှပြန်လာသောအပူချိန်တန်ဖိုးသည်ဒ decimal မ 26 နှင့်သက်ဆိုင်သော 0x1a ဖြစ်နိုင်သည်။


HexDec function application ကိုအခြေအနေများဥပမာ

ကျွန်ုပ်တို့သည် Sensor မှ hexadecimal strings strings strings ကိုလက်ခံပြီးအာရုံခံကိရိယာကွဲပြားခြားနားသောတိုင်းတာမှုများကိုကိုယ်စားပြုသည်။ အောက်ဖော်ပြပါသည် Hexdec ကို မည်သို့အသုံးပြုရမည်ကိုသရုပ်ပြရန် PHP code သည်အပူချိန်တန်ဖိုးကိုတွက်ချက်ရန်နှင့်တွက်ချက်မှုကိုတွက်ချက်ရန်ပုံကိုသရုပ်ပြပါ။

 <?php
// အာရုံခံကိရိယာကပြန်လာ hexadecimal ဒေတာကိုတုပ,အုပ်စုတစ်စုရှိအက်ခရာနှစ်လုံးသည် byte ကိုကိုယ်စားပြုသည်
$hexData = "1A3F0B"; 

// ပထမ byte ယူပါ '1A',ဒ decimal မလွှဲပါ
$tempHex = substr($hexData, 0, 2);
$tempDec = hexdec($tempHex);

echo "အာရုံခံအပူချိန်တန်ဖိုး(ဒက်မချက်):" . $tempDec;  // ထုတ်လုပ်ခြင်း:26
?>

ဤဥပမာတွင် HexDec (1A ') သည် 26 ပြန်ရောက်သည်။ အပူချိန်တန်ဖိုးမှာ 26 ဒီဂရီ (အထူးယူနစ်များကိုအာရုံခံကိရိယာအရသတ်မှတ်ထားသည်) ဖြစ်သည်။


ရှုပ်ထွေးသော hexadecimal packets တွေကိုကိုင်တွယ်

များသောအားဖြင့်အာရုံခံကိရိယာမှပြန်လာသောဒေတာ packet တွင်လယ်ကွင်းမျိုးစုံပါ 0 င်သည်။

  • 2 bytes အပူချိန်

  • 2 byte စိုထိုင်းဆ

  • 1 byte status ကိုကုဒ်

packet သည်ဤကဲ့သို့သော hexadecimal string ကိုဆိုပါစို့။

 $packet = "00FA007D01";

အဖြစ်ရှင်းပြသည်:

  • အပူချိန်: 00fa (hexadecimal)

  • စိုထိုင်းဆ: 007D (hexadecimal)

  • အခြေအနေကုဒ်: 01

ကျွန်ုပ်တို့သည် HexDec ကို တစ် ဦး အား ခွဲခြမ်းစိတ်ဖြာခြင်း ဖြင့်တစ်ပြိုင်နက်တည်းခွဲခြမ်းစိတ်ဖြာရန်အသုံးပြုနိုင်သည်။

 <?php
$packet = "00FA007D01";

$temperatureHex = substr($packet, 0, 4);
$humidityHex = substr($packet, 4, 4);
$statusHex = substr($packet, 8, 2);

$temperature = hexdec($temperatureHex); // 250
$humidity = hexdec($humidityHex);       // 125
$status = hexdec($statusHex);           // 1

echo "အပူအအေး:" . $temperature . "\n";
echo "စိုစွတ်ခြင်း:" . $humidity . "\n";
echo "အခြေအနေကုဒ်:" . $status . "\n";
?>

မှတ်သားရန်အရာ

  1. ဒေတာနယ်ပယ် : Hexdec သည် floating point နံပါတ်ကိုပြန်ပို့သည်။ အကယ်. အရေအတွက်သည် (PHP Integer Range ထက်ကျော်လွန်သော) အလွန်ကြီးလွန်းပါက GMP သို့မဟုတ် BCMATT တိုးချဲ့ခြင်းကဲ့သို့သောအခြားနည်းလမ်းများနှင့်ကိုင်တွယ်ရန်လိုအပ်သည်။

  2. Data format - hexDec သို့ 0 င်ရောက်ခြင်းသည်တရား 0 င် hex အက္ခရာများ (0-9, AF, AF) တွင်ပါ 0 င်ကြောင်းသေချာပါစေ။

  3. ကိစ္စမရှိပါဘူး - HexDec သည် စာလုံးအကြီးအသေးအရေးမကြီးပါ။ Hexdec ( 1A ') ၏ရလဒ်များသည်အတူတူပင်ဖြစ်သည်။