기본 코드
import 'dart:typed_data';
void main() {
//String hexStr = '3075';
String hexStr = 'd7fff945'; // 7999.98
//String num = '1000';
//hexStr = int.parse(num, radix: 10).toRadixString(16);
//int ihex = int.parse(hexFt, radix: 16);
if(hexStr.length%2 != 0) hexStr = '0'+hexStr;
print(hexStr);
double ff = 7999.98;
print(ff);
var bd = ByteData(4);
bd.setFloat32(0, ff);
print(bd.getUint32(0,Endian.little).toRadixString(16));
for(int i = 0; i<hexStr.length/2; i++){
int len = i*2;
bd.setUint8(i, int.parse(hexStr.substring(len,len+2), radix: 16));
}
var fConL = bd.getFloat32(0,Endian.little);
var uintConL = bd.getUint32(0,Endian.little);
var intConL = bd.getInt32(0,Endian.little);
var fConB = bd.getFloat32(0,Endian.big);
var uintConB = bd.getUint32(0,Endian.big);
var intConB = bd.getInt32(0,Endian.big);
print('Little Endian => Float32 ${fConL.toStringAsFixed(3)} Uint32 ${uintConL} Int32 ${intConL} ');
print('Big Endian => Float32 ${fConB.toStringAsFixed(3)} Uint32 ${uintConB} Int32 ${intConB} ');
}
===== 실행 결과 =====
d7fff945
7999.98
d7fff945
Little Endian => Float32 7999.980 Uint32 1174011863 Int32 1174011863
Big Endian => Float32 -562892139134976.000 Uint32 3623876933 Int32 -671090363
윈도우 변환기
윈도우 계산기도 있으나, 좀 불편하고 리틀/빅 엔디안하고 실수 변환(?)은 안되서 주말에 잠깐 만들어봄.
안드로이드 앱도 빌드해서 필요할때 확인함. 막상 만들면 안쓰게됨 😂
상기 사이트에서 400.1 은 0x43C80CCD 확인.
ver 0.0.5
- 기기 사이즈 적용.
- FittedBox 사용 텍스트 정렬, 동일 데이터 표시 삭제,
ver 0.0.6
- int 변환 버그 있어 수정함.
프로그램 다운.
더보기
======== 풀 버전 ==========
===== DLL 제외 버전 (풀버전에 덮어쓰기 하면 됨.) ===================