文档章节

C 语言 bit-field 位域

MtrS
 MtrS
发布于 2017/07/31 12:02
字数 119
阅读 10
收藏 0

#include <stdio.h>
#include <assert.h>

typedef struct Hello{
    unsigned h: 3, 
             m: 1,
             l: 12;
} Hello;

int main(){
    int h; 
    for (h=0; h < 10000; h++){
    Hello *hello = (Hello*)(&h);

    //printf("low:%d\nhigh:%d\n", hello->l, hello->h);
    //printf("low:%d\nhigh:%d\n", h>>3, h>>13<<3);

    printf("h = 0x%x, Hello={l=%x, m=%x,h=%x}\n",h ,hello->l,hello->m, hello->h);
    printf("high:hello.h= h%8 = %x and hello.h=%x\n",h%8 , hello->h);
    printf("last: h>>12 = %x \n",h>> 4);
    assert(hello->l == h >> 4 );
    assert(hello->m == (h & 15) >> 3);
    assert(hello->m == h % 16 /8);
    assert(hello->h == h % 8 );
 }
}

© 著作权归作者所有

上一篇: C 语言
下一篇: django error 集合
MtrS
粉丝 36
博文 697
码字总数 419119
作品 0
榆林
私信 提问
详细解读ARM寄存器之CPSR

一、CPSR概述 ARM处理器共有37个寄存器。这37个寄存器按其在用户编程中的功能划分,可分为2类寄存器,即31个通用寄存器和6个状态寄存器。这6个状态寄存器在ARM公司文件中其名称分别为:CPSR、...

zjy900507
2018/03/08
0
0
TI DSP位域寄存器文件(Bit Field and Register-File Struc...

很多初学者往往对TI DSP的大量的寄存器定义和组织形式感到迷茫,我从TI文档中翻译了这篇文章,希望能对初学者有所帮助。 以往寄存器定义一般用宏定义。例如: / * Traditional header file ...

AlphaJay
2012/06/12
224
0
CAN 总线 之五 BOSCH CAN2.0 Part B(标准格式消息 和 扩展格式消息)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 https://blog.csdn.net/ZCShouCSDN/article/details/90705713 前言   随着越来越多的应用程...

ZCShouEXP
06/07
0
0
使用EnumSet 代替位域(32)

1、位域(Bit field):使用or 运算将几个常量合并到一个集合中 位操作,可以有效地执行 AND 、OR 这样的位操作 但是 位域比int 常量枚举缺点更多 2、java.util 包里面的EnumSet 类是有效的替...

职业搬砖20年
2018/06/20
23
0
嵌入式开发笔记(六) ARM汇编指令集基础2

ARM汇编指令集基础2 基本内容回顾: 1. ldr, str, 2. mov r0,r1 mov r0, #0XFF00 mov r0 ,r1,lsl#3 ld r0, [r1] ld r0,[r1,#4] ldmia r0!,{r1-r7,r12} stmfd sp!,{r2-r7,r12} beq flag flag......

每天在改变
2016/12/25
114
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring使用ThreadPoolTaskExecutor自定义线程池及实现异步调用

多线程一直是工作或面试过程中的高频知识点,今天给大家分享一下使用 ThreadPoolTaskExecutor 来自定义线程池和实现异步调用多线程。 一、ThreadPoolTaskExecutor 本文采用 Executors 的工厂...

CREATE_17
今天
5
0
CSS盒子模型

CSS盒子模型 组成: content --> padding --> border --> margin 像现实生活中的快递: 物品 --> 填充物 --> 包装盒 --> 盒子与盒子之间的间距 content :width、height组成的 内容区域 padd......

studywin
今天
7
0
修复Win10下开始菜单、设置等系统软件无法打开的问题

因为各种各样的原因导致系统文件丢失、损坏、被修改,而造成win10的开始菜单、设置等系统软件无法打开的情况,可以尝试如下方法解决 此方法只在部分情况下有效,但值得一试 用Windows键+R打开...

locbytes
昨天
8
0
jquery 添加和删除节点

本文转载于:专业的前端网站➺jquery 添加和删除节点 // 增加一个三和一节点function addPanel() { // var newPanel = $('.my-panel').clone(true) var newPanel = $(".triple-panel-con......

前端老手
昨天
8
0
一、Django基础

一、web框架分类和wsgiref模块使用介绍 web框架的本质 socket服务端 与 浏览器的通信 socket服务端功能划分: 负责与浏览器收发消息(socket通信) --> wsgiref/uWsgi/gunicorn... 根据用户访问...

ZeroBit
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部