1、在c语言中定义bit型变量,可以使用位域来自定义。
在吴忠等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站设计制作、成都网站建设 网站设计制作按需定制制作,公司网站建设,企业网站建设,品牌网站建设,网络营销推广,外贸网站制作,吴忠网站建设费用合理。
位域的定义和位域变量的说明位域定义与结构定义相仿,其形式为:
struct 位域结构名
{ 位域列表 };
其中位域列表的形式为: 类型说明符 位域名:位域长度;
2、示例:通过位域来计算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;
}
bit Timerout=0; 这里的bit本质上和char、int一样的(功能一样,类型不一样),char是8位,int是16位,bit是1位。
每个字节是8位,就可以包含8个bit,bit只有两个值,1和0.
bit Timerout=0;
bit keypress;
就是定义两个长度为1位的变量。
a=a|BIT(b) BIT(b)应该是一个有返回值的函数,整个语句代表的是一个数,它与a这个数进行或运算了之后把运算结果赋给a
C语言支持位操作,示例如下:
/* 要操作的字节变量为i */
unsigned char i;
i = i 0x7f; /* 把最高位置0,其余位不变 */
i = i | 0x80; /* 把最高位置1,其余位不变 */
i = i 0xbf; /* 把第二位置0,其余位不变 */
i = i | 0x40; /* 把第二位置1,其余位不变 */
................................