keil4 c51中如何将 32位整型数 如0xABCDEFAB 转化为数组

如:0xABCDEFAB10101011110011011110111110101011转化为数组word[32]={w40=1,w39=0,w38=1,w37=0,w3... 如:
0xABCDEFAB
1010 1011 1100 1101 1110 1111 1010 1011
转化为数组

word[32]={w40=1,w39=0,w38=1,w37=0,w36=1,w35=0,w34=1,w33=1,
....................................w9=1}
主要就是用在AD9850 串口方式的 控制字写入
控制字是一个32位整型量。
串行写入需要 分别写每一位进去。
分数不是问题 能帮我解决就行。
我见过一些例程是采用移位的方法,但是我看不明白。
用起来也出不了信号。
展开
 我来答
单片机与嵌入式
2012-11-21 · 单片机与嵌入式学习的笔记汇总
单片机与嵌入式
采纳数:76 获赞数:357

向TA提问 私信TA
展开全部
分享一种编程的思想,建议采用移位的形式进行判断。

如原始变量 INT32_Temp = 0xABCDEFAB;

要用第0位的话,取值等于 ((INT32_Temp >>0) & 0x0001) 右移,然后取最右边的一位

依次类推,如果取值第N位, ((INT32_Temp >>N) & 0x0001)

具体的代码请自行编写 :)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一剑出血
高粉答主

2012-11-21 · 醉心答题,欢迎关注
知道大有可为答主
回答量:5.7万
采纳率:78%
帮助的人:1.7亿
展开全部
首先,C51并不原生支持位数组。
其次,用标准C的方式,效率会很低。51平台有位寻址方式。
另外,不明白你为什么要转换为word型,进一步降低了效率。

你不妨先描述一下要实现的目的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
KK终点
2012-11-21 · 超过11用户采纳过TA的回答
知道答主
回答量:34
采纳率:0%
帮助的人:33.1万
展开全部
#include <reg52.h>
#define uchar unsigned char
typedef union l_32 //定义共用体
{
unsigned long int long_32;
struct b_32
{
uchar b00:1; //位域
uchar b01:1;
uchar b02:1;
uchar b03:1;
uchar b04:1;
uchar b05:1;
uchar b06:1;
uchar b07:1;
uchar b08:1;
uchar b09:1;
uchar b10:1;
uchar b11:1;
uchar b12:1;
uchar b13:1;
uchar b14:1;
uchar b15:1;
uchar b16:1;
uchar b17:1;
uchar b18:1;
uchar b19:1;
uchar b20:1;
uchar b21:1;
uchar b22:1;
uchar b23:1;
uchar b24:1;
uchar b25:1;
uchar b26:1;
uchar b27:1;
uchar b28:1;
uchar b29:1;
uchar b30:1;
uchar b31:1;
}bit_32;
}ulongs;

uchar word[32];
ulongs kk; //定义一个32位的变量

void main(void)
{
kk.long_32 = 0xABCDEFAB; //对32位赋值
word[0] = kk.bit_32.b00; //变量kk的最低位赋给数组第1个元素
word[1] = kk.bit_32.b01; //变量kk的第二位赋给数组第2个元素
//同理可以对任意一个数组元素赋值
}

望采纳
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
庆珈蓝容01L
2012-11-23 · TA获得超过142个赞
知道答主
回答量:69
采纳率:100%
帮助的人:92.9万
展开全部
main(){
unsigned long hex=0xABCDEFAB
unsigned char word[32],i;
for (i=31;i>=0;i--)
{
word[i]=hex&0x1;
hex=hex>>1;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式