首页 > 其他分享 >数据类型一些相关问题

数据类型一些相关问题

时间:2023-12-13 15:14:56浏览次数:30  
标签:num4 Printf 数据类型 uint8 OLED num 6X8 一些 相关

如何取出整型的每一位

我们可以定义四个uint8_t的变量,然后将int类型变量每8位每8位的取出

 1 int main()
 2 {
 3     OLED_Init();
 4     int num=261;
 5     uint8_t num1;
 6     uint8_t num2;
 7     uint8_t num3;
 8     uint8_t num4;
 9     num1=(0xff000000&num)>>24;
10     num2=(0x00ff0000&num)>>16;
11     num3=(0x0000ff00&num)>>8;
12     num4=(0x000000ff&num);
13 
14     OLED_Printf(0,0,OLED_6X8,"num %d",num);
15     OLED_Printf(0,8,OLED_6X8,"num1 %d",num1);
16     OLED_Printf(0,16,OLED_6X8,"num2 %d",num2);
17     OLED_Printf(0,24,OLED_6X8,"num3 %d",num3);
18     OLED_Printf(0,32,OLED_6X8,"num4 %d",num4);
19     OLED_Update();
20     return 0;
21 }

如何取出浮点型每一位

浮点型在内存中按照IEEE754存储

比如19.625为01000001100111010000000000000000

浮点型不可以参与位运算,因此我们还要对它进行特殊的处理,方法是使用联合体让一个uint32_t的变量和它共用一块内存,这样这个uint32_t的变量在内存中的二进制形式和浮点型的一模一样,然后我们可以定义四个uint8_t的变量,然后将uint32_t类型变量每8位每8位的取出

 1 union test
 2 {
 3     float value;
 4     uint32_t num;
 5 }Test;
 6 int main()
 7 {
 8     Test.value=19.625;
 9     OLED_Init();
10     uint8_t num1;
11     uint8_t num2;
12     uint8_t num3;
13     uint8_t num4;
14     num1=(0xff000000&(Test.num))>>24;
15     num2=(0x00ff0000&(Test.num))>>16;
16     num3=(0x0000ff00&(Test.num))>>8;
17     num4=(0x000000ff&(Test.num));
18     OLED_Printf(0,0,OLED_6X8,"num %f",Test.value);
19     OLED_Printf(0,8,OLED_6X8, "num1 %d",num1);
20     OLED_Printf(0,16,OLED_6X8,"num2 %d",num2);
21     OLED_Printf(0,24,OLED_6X8,"num3 %d",num3);
22     OLED_Printf(0,32,OLED_6X8,"num4 %d",num4);
23     OLED_Update();
24     return 0;
25 }

项目问题1:

以EEPROM为例,它只能一个字节的一个字节的写入数据,那么我们如何将浮点型和整型写入EEPROM里面呢

 

标签:num4,Printf,数据类型,uint8,OLED,num,6X8,一些,相关
From: https://www.cnblogs.com/Sandals-little/p/17899025.html

相关文章

  • Vue3 setup 方法的一些基本使用总结
    官网介绍:https://cn.vuejs.org/api/composition-api-setup.html基本使用setup()钩子是在组件中使用组合式API的入口,通常只在以下情况下使用:需要在非单文件组件中使用组合式API时。需要在基于选项式API的组件中集成基于组合式API的代码时。setup方法返回值:返回一......
  • python123——西游记相关的分词,出现次数最高的20个
       #统计西游记人物出场次数,(去除冠词,代词等干扰)并降序排列p173importjiebaexcludes={"一个","那里","怎么","我们","不知","两个","甚么","不是","只见","原来","如何","这个","不曾&q......
  • 一些好玩的Hash算法(CMU15445)
    graphLRR[HashTable]-->St[静态哈希策略] R-->Dy[动态哈希策略] St-->线性探测法 St-->t1[RobinHood] St-->t2[CuckooHashing] Dy-->Ch[ChainedHashing] Dy-->Ex[ExtendibleHashing] Dy-->Lin[LinearHashing] Hash策略的分类静态哈希哈希表......
  • 第二节 数据类型
    数据类型Kotlin的基本数据类型与Java、C++基本对应。事实上绝大多数程序语言的基本数据类型都差不多。在Java中8中基本数据类型不属于类,也就不具备“对象”特征,无法进行面向对象操作。Java的解决方案是提供包装类将基本数据类型进行封装,使之每个包装类对象封装一个基本数据类型......
  • k8s证书相关
     1、cfssl字签证书查看证书可以使用以下命令查询CFSSL证书是否过期:复制代码 cfsslcertinfo-cert<certificate_file>其中,<certificate_file>为证书文件路径。执行该命令后,会输出证书的相关信息,包括有效期等信息。可以根据输出结果判断证书是否过期。[root@m......
  • 设备电源管理数据类型【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/driver-api/pm/types.htmlstructdev_pm_opsdevicePMcallbacks.Definition:structdev_pm_ops{int(*prepare)(structdevice*dev);void(*complete)(structdevice*dev);int(*suspend)(structdevice*dev)......
  • 在C++中,预处理器提供了一些符号和运算符,这些符号在宏定义中有特殊的含义
    在C++中,预处理器提供了一些符号和运算符,这些符号在宏定义中有特殊的含义。以下是一些常见的符号:#:字符串化运算符,用于将宏参数转换为字符串。#defineSTRINGIZE(x)#xstd::cout<<STRINGIZE(Hello);//输出"Hello"##:连接运算符,用于连接两个标记,使它们成为一个标记。#de......
  • Mac 自用的一些设置
    设置defaultswrite-gApplePressAndHoldEnabled-boolfalse长按连续输入[1]defaultswrite-gNSColorSimulateHardwareAccent-boolYESanddefaultswrite-gNSColorSimulatedHardwareEnclosureNumber-int4修改强调色[2]参考https://zihengcat.github.io/......
  • 企业级 Web 应用里使用 CSS 调整应用外观的一些例子
    笔者在日常工作中曾经负责过一些企业级Web应用的负责和开发,也曾经指导过一些客户的二次开发人员,通过各种方式对我们发布的企业级Web应用进行一些定制开发。所谓企业级前端应用,是指为大型企业或组织开发的前端应用,这些应用具有超过一般2C软件的技术复杂度,高度定制化和可扩展性......
  • 时间戳相关操作
    时间戳相关操作格式化DATE_FORMAT(submit_time,'%Y%m')#Y:完整年#y:年份的后2位日期差1.TIMESTAMPDIFF#第二个参数-第一个参数SELECTTIMESTAMPDIFF(MONTH,'2012-10-01','2013-01-13');2.DATEDIFF#第一个参数-第二个参数SELECTDATEDIFF('2013-01-13'......