为一个int型的value第【24:16】赋值,求解答
【24:16】的最大最小值为:min :1 0000 0000
max :0 1111 1111
然后
传入一个int型,就是代表【24:16】,求最简便的方法对value置位 最大256,最小-256?
9位数的直接传值?
我想到最简单的是直接位域访问。
cqv 发表于 2012-4-16 20:11 static/image/common/back.gif
最大256,最小-256?
9位数的直接传值?
我想到最简单的是直接位域访问。
能具体说一下代码吗?今天的笔试。。没写清楚 本帖最后由 cqv 于 2012-4-16 21:08 编辑
struct T
{
int a:9;
int r:15;
};
((struct T *)value)->a=1;
直接这样访问。 cqv 发表于 2012-4-16 21:05 static/image/common/back.gif
struct T
{
int a:9;
min :1 0000 0000
max :0 1111 1111
根据考官的意思 min max设置为这么,有意义的,说移位的时候要考虑的,最高位什么的,不知道这个有什么意义吗?我不明白他的意思 本帖最后由 cqv 于 2012-4-16 21:26 编辑
刚才的结构体有点小问题,我这边给你一个范例:
刚才用VC6试了下
#include <stdio.h>
struct T
{
int r:16;
int a:9;
};
void main(void)
{
int value1=0;
int value2=0;
((struct T *)&value1)->a=-256;
((struct T *)&value2)->a=255;
printf("%d,%d",((struct T *)&value1)->a,((struct T *)&value2)->a);
}
考官的意思就是用int的9位位域标识-256~255的值范围吗? cqv 发表于 2012-4-16 21:05 static/image/common/back.gif
struct T
{
int a:9;
你这样写a是低位吧{:smile:} cqv 发表于 2012-4-16 21:19 static/image/common/back.gif
刚才的结构体有点小问题,我这边给你一个范例:
刚才用VC6试了下
#include
呵呵,谢谢,我也不知道他什么意思,但是如果用这么做,应该他也挑不出毛病了。 823032003 发表于 2012-4-16 21:23 static/image/common/back.gif
你这样写a是低位吧
确实啊,我这不是自己用VCdebug下,改了小程序贴出来了吗。呵呵。
winmenaruto1 发表于 2012-4-16 21:25 static/image/common/back.gif
呵呵,谢谢,我也不知道他什么意思,但是如果用这么做,应该他也挑不出毛病了。 ...
这个。最好还是自己多懂点。试验下。
我也是看下你的问题,然后自己用VC分析了下。
之前我也是没试过位域对于有符号型 int的支持效果的。。呵呵
没看懂LZ问的是什么,呵呵 我也没看懂,不知道是不是这样的:value |= (1 << n);
页:
[1]