您的位置 首页 电子技术

C语言操作寄存器的常见手法

使用C语言对寄存器赋值时,常常需要用到C语言的位操作方法。把寄存器某位清零 假设a代表寄存器,且其中本来已有值。如果要把其中某一位清零且其它位不变,代码如下。\” />

<meta http-equiv=X-UA-Compatible content=\"IE=edge,chrome=1

使用C语言对寄存器赋值时,常常需要用到C语言的位操作方法。把寄存器某位清零假设a代表寄存器,且其中本来已有值。如果要把其中某一位清零且其它位不变,代码如下。

//定义一个变量 a = 1001 1111 b (二进制数)unsigned char a = 0x9f;//对 bit2 清零a &= ~(1<<2);//括号中的 1 左移两位,(1<<2) 得二进制数:0000 0100 b//按位取反,~(1<<2) 得 1111 1011 b//假如 a 中原来的值为二进制数:a = 1001 1111 b//所得的数与 a 作”位与&”运算,a = (1001 1111 b)&(1111 1011 b),//经过运算后,a 的值 a=1001 1011 b// a 的 bit2 位被被零,而其它位不变。把寄存器某几个连续位清零    由于寄存器中有时会有连续几个寄存器位用于控制某个功能,现假设我们需要把寄存器的某几个连续位清零,且其它位不变,代码如下。

//若把 a 中的二进制位分成 2 个一组//即 bit0、bit1 为第 0 组,bit2、bit3 为第 1 组,// bit4、bit5 为第 2 组,bit6、bit7 为第 3 组//要对第 1 组的 bit2、bit3 清零a &= ~(3<<2*1);//括号中的 3 左移两位,(3<<2*1) 得二进制数:0000 1100 b//按位取反,~(3<<2*1) 得 1111 0011 b//假如 a 中原来的值为二进制数:a = 1001 1111 b//所得的数与 a 作”位与&”运算,a = (1001 1111 b)&(1111 0011 b),//经过运算后,a 的值 a=1001 0011 b// a 的第 1 组的 bit2、bit3 被清零,而其它位不变。//上述 (~(3<<2*1)) 中的 (1) 即为组编号; 如清零第 3 组 bit6、bit7 此处应为 3//括号中的 (2) 为每组的位数,每组有 2 个二进制位; 若分成 4 个一组,此处即为 4//括号中的 (3) 是组内所有位都为 1 时的值; 若分成 4 个一组,此处即为二进制数“1111 b”//例如对第 2 组 bit4、bit5 清零a &= ~(3<<2*2);对寄存器某几位赋值    寄存器位经过清零操作后就可以方便地对某几位写入所需要的数值了,具体代码如下。

//a = 1000 0011 b//此时对清零后的第2组bit4、bit5设置成二进制数“01b”a|=(1<<2*2);//a = 1001 0011 b,成功设置了第 2 组的值,其它组不变寄存器某位取反    要对寄存器的某个位进行取反操作,即 1 变 0 ,0 变 1,这可以直接用如下操作。

//a = 1001 0011 b//把 bit6 取反,其它位不变 a ^=(1<<6);//a = 1101 0011 b

<!–

免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。

作者: admin

为您推荐

智慧路灯照明系统的应用为智慧城市的发展建设添砖加瓦

智慧路灯照明系统的应用为智慧城市的发展建设添砖加瓦

智慧路灯照明系统的应用为智慧城市的发展建设添砖加瓦-夜间的路灯不仅照亮了黑暗的街道,而且照亮了回家的道路。从街上望去,闪烁的路灯发出暖光,指引着我们家的方向。城市里的路灯就像“守护者”,给长途旅行回来的游客带来了极大的安全感。 当今,路灯智能控制时代的到来,极大地促进了传统路灯的人工机械化运行。虽然对此感到兴奋,但我们不禁要问:随着路灯智能控制的早期到来,除了改善路灯的运行模式,还能带来什么? 为城市交通提供安全保障 城市公共照明系统中的智能路灯在每个路

晶振在五种不同行业中的应用说明

晶振在五种不同行业中的应用说明-晶振在五种不同行业的应用-由TST嘉硕代理KOYU光与电子

几种不同的物联网控制APP模式

本文就简单介绍当前几种物联网控制APP模式,让大家了解几种不同的技术路线。\” />

<meta http-equiv=X-UA-Compatible content=\"IE=edge,chrome=1

苹果稳坐全球可穿戴设备数量首位,占据日本市场超7成份额

苹果稳坐全球可穿戴设备数量首位,占据日本市场超7成份额

苹果公司占据2021年日本第四季度可穿戴设备71.5%份额,占据全球可穿戴设备市场34.9%份额。\” />

<meta http-equiv=X-UA-Compatible content=\"IE=edge,chrome=1

如何用GPUDirect存储器如何缓解CPU I / O瓶颈

除了使用 GPUs 而不是 CPU 加快计算的好处外,一旦整个数据处理管道转移到 GPU 执行,直接存储就起到了一个力倍增器的作用。这一点变得尤为重要,因为数据集大小不再适合系统内存,而且 GPUs 的数据 I / O 增长成为处理时间的瓶颈。当人工智能和数据科学继续重新定义可能的艺术时,启用直接路径可以减少甚至完全缓解这个瓶颈。\” />

<meta http-equiv=X-UA-Compatible content=\"IE=edge,chrome=1

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

返回顶部