2025-11-08 05:49:26
单片机用0x80来存小数点的时候,其实是把最高位当符号用。比如存-128这个数,0x80就是它的二进制形式。小数点保留的方法是固定位置,比如把小数点放在数的前三位后面,这样整数和小数就分开了。这样处理能省内存,还能用移位操作算加减法。
为什么0x80能存小数点呢?因为8位有符号数最高位是符号位,0x80正好是二进制的10000000,对应十进制的-128。单片机常用这种定点格式,比如存-12.345的话,可能拆成-13(整数部分)和0.655(小数部分),用两个字节分别存。根据数据手册,8位有符号数范围是-128到127,刚好能存-128这个临界值。比如用0x80存-128.000,后面的三个0用0x00补上,这样总共四个字节就能存完整。不过要注意,如果小数点固定在第三位后面,那么-128.000的存储值就是0x80,00,00,这样算的时候要左移三位变成-1280,再除以1000才能还原。
本题链接: