首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

位演算

2012-10-15 
位运算结论:取字节的最低位赋值?实验环境:AVR?Studio?+?WinAVR?071221?实验程序:?#include?avr/io.h?typ

位运算

结论:取字节的最低位赋值?

实验环境:AVR?Studio?+?WinAVR?071221?
实验程序:?
#include?<avr/io.h>?
typedef?unsigned?char?INT8U;?
typedef?struct?
{?
????INT8U???a:1;?
????INT8U???b:7;?
}?BTS;?
main()?
{?
????INT8U???i=0x00;?
????INT8U???j=0xFF;?
????BTS?????bit_t;?
?????
????while(1)?
????{?
????????bit_t.a?=?i;?
????????bit_t.b?=?j;?????
????????i++;?
????????j--;?
????}?
}?
软件仿真结果:?
????第一轮:开始时,bit_t?=?0xFF,i?=?0x00,j=0xFF?
????????????bit_t.a?=?i;????//?此时:bit_t?=?0xFE,最低位置0了?
????????????bit-t.b?=?j;????//?此时:bit_t?=?0xFE,?j低7bit位111?1111B?
????第二轮:开始时,bit_t?=?0xFE,i?=?0x01,j=0xFE?
????????????bit_t.a?=?i;????//?此时:bit_t?=?0xFF,最低位置1了?
????????????bit-t.b?=?j;????//?此时:bit_t?=?0xFD,?j低7bit位111?1110B?
????第三轮:开始时,bit_t?=?0xFD,i?=?0x02,j=0xFD?
????????????bit_t.a?=?i;????//?此时:bit_t?=?0xFC,注意:最低位置0了?
????????????bit-t.b?=?j;????//?此时:bit_t?=?0xFA,?j低7bit位111?1101B?
????好了,看出结果了吧。?

实际应用:?
????位域实际是很有用的,比如最近使用ADF7021,配置寄存器为32bit的,其中某些bit表示不同的设置,这时使用带位域的一个共用体,设置寄存器非常方便。?
?????

热点排行