IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Flutter中十六进制数组转换为十进制 -> 正文阅读

[移动开发]Flutter中十六进制数组转换为十进制

概述

Flutter项目中使用蓝牙测量产品深度,需要将测量结果在App中显示。

详情

数据

[2, 0, 255, 0, 0, 12, 18, 1]
蓝牙测量数据为30.90,返回的数据为长度为8的16进制数组,如上图所示。其中第4、5、6、7为测量数据,其他数据为蓝牙协议的其他数据,现要求将[0,0,12,18]测量数据转换为30.90后显示在手机上。方法有很多,可以在Android/iOS将数据先转换为十进制后再传给flutter,本文则是在flutter端转换。

转换
  1. 将源数据转换为Uint8List
      Uint8List uint8list = Uint8List.fromList([2,0,255,0,0,12,18,1]);
  1. 截取测量数据
      Uint8List subList = Uint8List.sublistView(uint8list , 3, 7);

subList为[0,0,12,18]。

  1. 复制数组
     Uint8List resultList = Uint8List.fromList(subList);
  1. 转换为字节序列
     ByteData byteData = ByteData.view(resultList.buffer);
  1. 得到结果
     int result = byteData.getInt32(0);

最后得到结果为3090,将其进行单位换算得到30.90。

第三步复制数组好像多余,其实不然,若缺少第三步,最终结果则会得到一个不等于309的极大数据。
详细原因还在深究中…。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-07-16 22:01:10  更:2021-07-16 22:01:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/4 8:02:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码