• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

stm32的flash模拟EEPROM时存负数问题

13783538174 2018-04-19 浏览量:3528
在stm32的flash中开辟一块内存存放几个负数,必须要将这个负数转换为补码再放入吗
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • stm32 flash库提供的都是无符号数保存,


    可以用指针取数据保存

    比如

    FlashSave( *((uint32_t*)(&Val)) );     //假如你是32bits的


    也可以共用体

    union {

        uint32_t  iVal;

        int32_t   uVal;

    } data;


    data.iVal = 你的数据;

    FlashSave(data.uVal);​ //保存函数

    • 发布于 2018-04-19
    • 举报
    • 评论 0
    • 1
    • 0

其他答案 数量:8
  • 不需要,一般最高位是符号,后面是数据
    • 发布于2018-04-19
    • 举报
    • 评论 0
    • 0
    • 0

  • 不用的,数据存储成什么类型都是可以的,只要是读取时与存储的数据结构一样就可以了。
    • 发布于2018-04-19
    • 举报
    • 评论 0
    • 0
    • 0

  • 不用转换,直接存,村的时候什么数据类型,读出来还要是什么数据类型就不会错
    • 发布于2018-04-20
    • 举报
    • 评论 0
    • 0
    • 0

  • 电子学里面没有正负数的说法,同一是二进制的格式,每个存储单元 要么0要么1,所谓的正负数只是一种表示方式,用补码也可以反码也可以,你的程序自己能够解析就行
    • 发布于2018-04-20
    • 举报
    • 评论 0
    • 0
    • 0

  • 不需要转换,直接存,只是你自己需要知道这里存的数正负就行。
    • 发布于2018-04-21
    • 举报
    • 评论 0
    • 0
    • 0

  • 不用,存储成无符号 的,用的时候强制转换成有符号 的。
    • 发布于2018-04-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个存储方式可以由用户自由选择的,一般我会将负数的符号单独存到一个单元里,如0x0正数,0x01负数。

    • 发布于2018-04-25
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

stm32的flash模拟EEPROM时存负数问题