当前位置:首页 » 编程语言 » c语言结构体位域

c语言结构体位域

发布时间: 2024-11-08 05:31:00

1. c语言中如何将16位结构体定义为4位和12位两部分

1、可以通过位域来实现,如下:
struct int_16
{
unsigned a : 4; //占4位的部分变量名为a
unsigned b : 12; //占12位的部分变量名为b
} ;
2、在c语言中定义bit型变量,可以使用位域来自定义。
位域的定义和位域变量的说明位域定义与结构定义相仿,其形式为:

struct 位域结构名
{ 位域列表 };
其中位域列表的形式为: 类型说明符 位域名:位域长度;

示例:通过位域来计算IEEE754浮点数标准中,单精度浮点数的最大值、最小值以及最小弱规范数。
#include <stdio.h>
typedef struct FP_SINGLE
{
unsigned __int32 fraction : 23;
unsigned __int32 exp : 8;
unsigned __int32 sign : 1;
} fp_single;
int main()
{
float x;
fp_single * fp_s = (fp_single *)&x;
fp_s->sign = 0;
fp_s->exp = 0xfe;
fp_s->fraction = 0x7fffff;
printf ("float 最大数: %le\n",(double)x);
fp_s->sign = 0;
fp_s->exp = 0x1;
fp_s->fraction = 0x0;
printf ("float 最小数: %le\n",(double)x);
fp_s->sign = 0;
fp_s->exp = 0;
fp_s->fraction = 0x1;
printf ("float 最小弱规范数:%le\n\n",(double)x);
return 0;
}

热点内容
英雄联盟登录密码在哪里修改 发布:2024-11-08 07:25:16 浏览:515
努比亚有没有免费云存储 发布:2024-11-08 07:08:18 浏览:569
主机什么配置可以打绝地求生 发布:2024-11-08 07:08:18 浏览:988
方舟手游如何请入火影服务器 发布:2024-11-08 07:05:57 浏览:311
ip6根服务器最新消息 发布:2024-11-08 07:05:56 浏览:334
探探存储的图片在哪里找 发布:2024-11-08 07:04:32 浏览:224
slp用什么编译器 发布:2024-11-08 07:04:16 浏览:413
三一重工天泵参数密码是什么 发布:2024-11-08 06:59:45 浏览:660
攻击服务器数据库 发布:2024-11-08 06:45:57 浏览:909
godaddy的云服务器 发布:2024-11-08 06:44:43 浏览:444