本文主要是介绍【C语言】十六进制、二进制、字节、位,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
【C语言】十六进制、二进制、字节、位
文章目录
- @[TOC](文章目录)
- 前言
- 一、十六进制、二进制、字节、位
- 二、变量、指针、指针变量
- 三、参考文献
- 总结
文章目录
- @[TOC](文章目录)
- 前言
- 一、十六进制、二进制、字节、位
- 二、变量、指针、指针变量
- 三、参考文献
- 总结
前言
使用工具:
1.控制器:STM32F103C8T6
2.仿真器:STLINK
提示:以下是本篇文章正文内容,下面案例可供参考
一、十六进制、二进制、字节、位
u16 A_Parameter[10],B_Parameter[10],Flash_Parameter[10]; //
在C语言或类似的环境中,u16 通常被定义为 unsigned short,这意味着它是一个无符号的16位整型数据。由于一个字节包含8位,因此 u16 类型的数据占用2个字节。
对于数组 u16 A_Parameter[10],它包含了10个 u16 类型的元素。每个元素占用2个字节,因此整个数组占用的字节数为:
10 元素×2 字节/元素=20 字节
所以,u16 A_Parameter[10] 占用了20个字节。
A_Parameter[0] 是数组 A_Parameter 的第一个元素,其类型为 u16,即 unsigned short。由于 u16 是一个16位的无符号整型,它占用2个字节。
因此,A_Parameter[0] 占用2个字节。
#define FLASH_SAVE_ADDR 0X0800E000
通过仿真器回读芯片FLASH中0X0800E000地址
十六进制表示
31 00 00 00 03 00 04 00
A_Parameter[0] 占据两个字节,
一个字节占据8位,
十六进制表示0x31 00,
二进制表示0011 0001 0000 0000,
按位表示共有十六个0和1的位组成
二、变量、指针、指针变量
unsigned char a ;//
unsigned char *p ;//
void Flash_Write(void)
{static unsigned int date=0;//¾²Ì¬Êý¾Ý£¬²»Ë溯Êý½øÈë°ÑÊý¾ÝÇå³ýif(++date==65535)date=0;//Êý¾Ý×Ô¼ÓB_Parameter[0]=M1.speed;//M1.speed//date B_Parameter[1]=M2.speed; B_Parameter[2]=3; B_Parameter[3]=4; printf("Êý¾ÝÀàÐ͵ĴóС\r\n"); printf("char=%d,int=%d,float=%d,double=%d\r\n",sizeof((unsigned char)B_Parameter[0])\,sizeof((unsigned int)B_Parameter[1])\,sizeof((float)B_Parameter[2])\,sizeof((double)B_Parameter[3]));printf("\r\n"); a=10;p=&a;//È¡µØÖ·printf("±äÁ¿aµÄµØÖ·\r\n"); printf("&a=0x%x\r\n",&a); printf("p=0x%x\r\n",p);printf("&p=0x%x\r\n",&p); printf("\r\n"); printf("±äÁ¿aµÄÖµ\r\n"); printf("a=%d\r\n",a);printf("*p=%d\r\n",*p); printf("\r\n"); printf("ͨ¹ýÖ¸Õë±äÁ¿¸Ä±ä±äÁ¿aµÄÖµ\r\n"); *p=11; printf("a=%d\r\n",a); printf("*p=%d\r\n",*p); printf("\r\n"); printf("ͨ¹ýÄÚ´æµØÖ·¸Ä±ä±äÁ¿aµÄÖµ\r\n"); *(unsigned int *)0x200005ac=12; printf("a=%d\r\n",a); printf("*p=%d\r\n",*p); printf("\r\n"); STMFLASH_Write(FLASH_SAVE_ADDR,(u16*)B_Parameter,4);
}
三、参考文献
位、字节、16进制
总结
本文仅仅简单介绍了【C语言】十六进制、二进制、字节、位验证,评论区欢迎讨论。
这篇关于【C语言】十六进制、二进制、字节、位的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!