Tietotyyppien muunnostyökalu | IEEE754-liukuluku/heksadesimaali/desimaali-muunnos/usean tavujärjestyksen tuki (Big-Endian/Little-Endian/Big-Endian-Byte Swap/Little-Endian-Byte Swap)/reaaliaikainen muunnos
Ammattimainen tietotyyppien muunnostyökalu, joka tukee IEEE754-liukulukujen ja heksadesimaali/desimaali-arvojen välistä muunnosta. Kattaa kaikki kokonaisluku- ja liukulukutietotyypit (UINT16/INT16/UINT32/INT32/FLOAT32/UINT64/INT64/FLOAT64) ja tukee useita tavujärjestyksiä (Big-Endian (korkea tavu ensin)/Little-Endian (matala tavu ensin)/Big-Endian-Byte Swap (korkea tavu ensin)/Little-Endian-Byte Swap (matala tavu ensin)). Muunnostulokset näytetään reaaliaikaisesti.
Muunnostulokset
| Tietotyyppi | ABCD (Big-Endian) | DCBA (Little-Endian) | BADC | CDAB |
|---|---|---|---|---|
UINT16 16-bittinen etumerkitön kokonaisluku | - | - | ||
INT16 16-bittinen etumerkillinen kokonaisluku | - | - | ||
UINT32 32-bittinen etumerkitön kokonaisluku | - | - | - | - |
INT32 32-bittinen etumerkillinen kokonaisluku | - | - | - | - |
FLOAT32 32-bittinen liukuluku | - | - | - | - |
UINT64 64-bittinen etumerkitön kokonaisluku | - | - | - | - |
INT64 64-bittinen etumerkillinen kokonaisluku | - | - | - | - |
FLOAT64 64-bittinen liukuluku | - | - | - | - |
Käyttöohje
Toimintojen yleiskatsaus
Tietotyyppien muunnostyökalu on suunniteltu eri datamuotojen välisiin muunnoksiin, tukien heksadesimaalin ja desimaalin välistä muunnosta. Se kattaa laajan valikoiman 16-bittisistä 64-bittisiin kokonaisluku- ja liukulukutietotyyppejä. Kokonaisluvut esitetään kahden komplementin (Two's Complement) muodossa; liukuluvut käyttävät IEEE-754-koodausta (yksinkertainen 32-bittinen/kaksinkertainen 64-bittinen), mikä mahdollistaa tavujärjestyksen vaikutuksen tulokseen havainnollisen tarkastelun.
Päätoiminnot
- Formaatin muunnos tukee heksadesimaalin ja desimaalin välistä muunnosta
- Useita tietotyyppejä tukee 8 yleistä tietotyyppiä (UINT16/INT16/UINT32/INT32/FLOAT32/UINT64/INT64/FLOAT64)
- Tavujärjestyksen tuki tukee 4 eri tavujärjestystä (ABCD/DCBA/BADC/CDAB) eri laitteiden ja rekisterien sanajärjestysvaatimusten mukaisesti
- Reaaliaikainen muunnos näyttää kaikkien tyyppien muunnostulokset heti datan syöttämisen jälkeen
Käyttötapa
- 1. Valitse syöttömuoto, desimaali tai heksadesimaali
- 2. Syötä arvo syöttökenttään
- 3. Tarkastele alla olevan taulukon muunnostuloksia
- 4. Alueen ylittävät muunnostulokset näytetään merkinnällä '-'
Syöttömuodon selitys
- Desimaalisyöttö, syötä numerot suoraan, esim. 123, -456, 3.14
- Heksadesimaalisyöttö, syötä 16-järjestelmän merkkejä, esim. 7B, FF00, A1B2C3D4
- Heksadesimaalin automaattinen muotoilu, täydentää syötteen automaattisesti parilliseksi ja lisää välilyönnit erottimiksi
Tietotyyppien selitys
KokonaislukutyypitUINT16/INT16 ovat 2 tavua, UINT32/INT32 ovat 4 tavua, UINT64/INT64 ovat 8 tavua. Etumerkilliset kokonaisluvut käyttävät kahden komplementin esitysmuotoa, jossa korkein bitti on etumerkkibitti. Negatiiviset luvut saadaan ottamalla itseisarvosta komplementti (bittien kääntö + 1) ja näyttämisen yhteydessä tehdään etumerkin laajennus kohdebitin leveyden mukaan.
LiukulukutyypitFLOAT32 on 4 tavun yksinkertaisen tarkkuuden liukuluku (1 etumerkkibitti + 8 eksponenttibittiä + 23 mantissabittiä, eksponentin poikkeama 127). FLOAT64 on 8 tavun kaksinkertaisen tarkkuuden liukuluku (1 etumerkkibitti + 11 eksponenttibittiä + 52 mantissabittiä, eksponentin poikkeama 1023). Molemmat noudattavat IEEE-754-standardia ja tukevat erikoisarvoja, kuten ±0, ±∞ ja NaN (Not a Number). Subnormaalit luvut esitetään hyvin pieninä eksponentteina.
Aluerajoitukset, tietotyypin alueen ylittävät arvot näytetään merkinnällä '-'
Tavujärjestyksen selitys
- ABCD, Big-Endian, korkean arvon tavu ensin (esim. jotkin PLC/teollisuusohjauslaitteet)
- DCBA, Little-Endian, matalan arvon tavu ensin (esim. useimmat x86-arkkitehtuurit)
- BADC, tavunvaihto (vaihtaa 16-bittisin askelin AB↔BA, CD↔DC), yleinen 32-bittisessä datassa, jossa kaksi tavuparia vaihdetaan
- CDAB, tavunvaihto (32-bittisessä ryhmässä ensimmäiset ja viimeiset kaksi tavua vaihdetaan), yhteensopiva joidenkin Modbus-rekisterien sanajärjestyksen kanssa
Huomautus tavujärjestys (Byte Endianness) ja rekisterin sanajärjestys (Word Order) ovat eri käsitteitä. 16-bittisellä datalla vain ABCD- ja DCBA-järjestyksillä on merkitystä. 64-bittisessä datassa suositellaan viittaamaan ABCDEFGH-kahdeksan tavun kaavioon sekaannusten välttämiseksi.
Tietoa datamuunnoksesta
Mitä on tietotyyppien muunnos?
Tietotyyppien muunnos on prosessi, jossa sama numeerinen arvo muunnetaan eri esitysmuotojen välillä, mukaan lukien eri lukujärjestelmät (desimaali/heksadesimaali) ja eri tietotyypit (kokonaisluku/liukuluku). Tämä on yleistä Modbus/PLC/sulautettujen järjestelmien rekisteriarvojen jäsennyksessä ja kehysten muodostuksessa.
IEEE-754 liukulukumuoto (yksinkertainen/kaksinkertainen tarkkuus)
Yksinkertainen tarkkuus (32-bittinen) = 1 etumerkkibitti + 8 eksponenttibittiä (poikkeama 127) + 23 mantissabittiä. Kaksinkertainen tarkkuus (64-bittinen) = 1 etumerkkibitti + 11 eksponenttibittiä (poikkeama 1023) + 52 mantissabittiä. Tukee ±0, ±∞, NaN; kun eksponentti on kokonaan nolla ja mantissa ei ole nolla, kyseessä on subnormaali luku, jota käytetään esittämään nollaa lähellä olevia hyvin pieniä lukuja.
Kahden komplementti ja etumerkilliset kokonaisluvut
Komplementti saadaan kääntämällä itseisarvon bitit ja lisäämällä yksi, ja korkein bitti toimii etumerkkibittinä. Kun HEX-arvoa jäsennetään INT-tyypiksi, on tehtävä etumerkin laajennus bittileveyden mukaan. Jos korkein bitti on 1, se tarkoittaa negatiivista lukua, joka on palautettava komplementtisäännön mukaisesti.
Tavujärjestys (Endianness) ja rekisterin sanajärjestys (Word Order)
Tavujärjestys määrittää tavujen järjestyksen muistissa (ABCD/DCBA), kun taas rekisterin sanajärjestys määrittää 16-bittisten rekisterien korkean ja matalan sanan järjestyksen (esim. BADC/CDAB). Molemmat vaikuttavat usein 32/64-bittisen datan näyttöön ja jäsennykseen, ja niiden tulisi vastata laitteen dokumentaatiota.
64-bittiset kokonaisluvut ja JavaScriptin turvalliset kokonaisluvut
Selaimen Number-tyyppi on IEEE-754-kaksinkertaisen tarkkuuden liukuluku, jonka turvallinen kokonaislukualue on ±(2^53-1). Tämä työkalu käyttää BigInt-tyyppiä 64-bittisten muunnosten ja näyttöjen käsittelyyn. Kun arvo ylittää kohdetyypin alueen tai on olemassa tarkkuusriski, se näytetään merkinnällä '-'.
HEX-syötteen normalisointi
HEX-syöte poistaa automaattisesti ei-heksadesimaaliset merkit, muuntaa ne isoiksi kirjaimiksi ja lisää tarvittaessa etunollia parillisen määrän varmistamiseksi. Näytettäessä se ryhmitellään kahden merkin välein välilyönneillä luettavuuden parantamiseksi.
Liukulukujen ja kokonaislukutyyppien säännöt
Kun desimaalisyöte sisältää desimaalipilkun ja kohde on kokonaisluku, näytetään '-'. Liukulukumuunnos tehdään vain, kun kohde on FLOAT32/FLOAT64.
Yleiset väärinkäsitykset, ison/pienen endianin ja bittijärjestyksen, NaN/Infinity-näytön ero
Iso/pieni endian vaikuttaa vain tavujärjestykseen, bittien järjestys tavun sisällä ei muutu. NaN:lla on useita koodausmuotoja, mutta se näytetään aina NaN:na. ±0 erotellaan IEEE-754:ssä, mutta numeerisessa vertailussa ne ovat yleensä samanarvoisia.
Käyttökohteet
- Modbus-viestinnän datamuotojen muuntaminen
- PLC-tietotyyppien vianmääritys
- Teollisuuslaitteiden parametrien konfigurointi
- Viestintäprotokollien analysointi
- Tiedonkeruujärjestelmien kehitys
- Laiterekisterien arvojen laskenta
- Liukulukujen ja kokonaislukujen muuntaminen
- Useiden laitteiden datamuotojen sovittaminen