| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6927 人关注过本帖
标题:怎样对变量的某几个特定位赋值
只看楼主 加入收藏
OgarlicO
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-9-27
收藏
 问题点数:0 回复次数:6 
怎样对变量的某几个特定位赋值
我有一个变量  i,unsigned long 类型,还有一个8位的unsigned char   k.怎样把k的值赋给i的8-16位,i的其余为不受影响。前提是不能对k的8-16位先进行清零,再赋值,而是直接赋值。

[ 本帖最后由 OgarlicO 于 2013-2-16 09:30 编辑 ]
搜索更多相关主题的帖子: 影响 
2013-02-16 09:26
心灯甚亮
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:441
专家分:996
注 册:2013-1-29
收藏
得分:0 
对需要的位用按位与置1即可 但c语言没有二进制 需要自己转成支持的进置
2013-02-16 09:39
心灯甚亮
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:441
专家分:996
注 册:2013-1-29
收藏
得分:0 
额没看清问题 你需要一个char指针指向long然后指针自增
2013-02-16 09:42
心灯甚亮
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:441
专家分:996
注 册:2013-1-29
收藏
得分:0 
程序代码:
#include <stdio.h>
int main()
{
    unsigned long i;
    i=0x11111111;
    printf("%0#10lx\n",i);

    unsigned char c;
    c=0x22;

    char * p=(char*)(&i);
    p++;
    *p=c;

    printf("%0#10lx\n",i);

    return 0;
}

c语言指针的灵活性就在于此

[ 本帖最后由 心灯甚亮 于 2013-2-16 10:02 编辑 ]
2013-02-16 10:00
洫魇
Rank: 2
等 级:论坛游民
帖 子:46
专家分:34
注 册:2013-2-5
收藏
得分:0 
用memset函数试试.

一切,都在输给时间.
2013-02-16 10:39
心灯甚亮
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:441
专家分:996
注 册:2013-1-29
收藏
得分:0 
memset?
2013-02-16 10:43
心灯甚亮
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:441
专家分:996
注 册:2013-1-29
收藏
得分:0 
将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作, 其返回值为指向S的指针。
我还是喜欢用指针,方便灵活
2013-02-16 10:45
快速回复:怎样对变量的某几个特定位赋值
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025880 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved