You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将18.25℃转换为DS18B20对应的16位温度二进制?

DS18B20温度转16位二进制步骤(以18.25℃为例)

DS18B20的16位温度值采用补码格式存储,正数的补码与原码一致,具体转换步骤如下:

1. 拆分温度的整数与小数部分

18.25℃可拆分为:

  • 整数部分:18
  • 小数部分:0.25

2. 转换整数部分为二进制

将整数18转为二进制:
18 = 16 + 2 = 2^4 + 2^1 → 二进制为 10010
由于是正数,16位补码的高8位需补前导0,最终整数部分的8位二进制为:00010010

3. 转换小数部分为二进制

DS18B20的小数部分对应8位二进制,每一位的权重依次为 2^-1(0.5)、2^-2(0.25)、2^-3(0.125)……2^-8(0.00390625)。
0.25恰好等于2^-2,对应小数部分二进制的第6位(从0开始计数,bit6为1,其余位为0),因此小数部分的8位二进制为:00100000

4. 组合为16位二进制

将整数部分的8位与小数部分的8位拼接,得到最终的16位温度二进制:
00010010 00100000(或连续写为0001001000100000)

验证(可选)

将16位二进制转回十进制:

  • 整数部分:00010010 = 18
  • 小数部分:00100000 = 00.5 + 10.25 + 00.125 + ... + 00.00390625 = 0.25
  • 总和为18.25℃,转换正确

内容的提问来源于stack exchange,提问作者NedOoO

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 14:35:10