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

位段有关问题-什么时候取补码

2012-02-10 
位段问题-什么时候取补码?structbs{unsigneda:3intb:3unsignedc:7}bit,*pbitbit.a3//bit.b0x17bit

位段问题-什么时候取补码?
struct   bs
{
unsigned   a:3;
int   b:3;
unsigned   c:7;
}   bit,*pbit;


bit.a=3;
//bit.b=0x17;
bit.b=3;
bit.c=12;                    


printf( "%d,%d,%d\n ",bit.a,bit.b,bit.c);


struct   tmdf  
{  
  int     a:1;  
int   b:3;  
int   c:4;  
}ff   ;

ff.a=1;
ff.b=3;  
ff.c=12;  

cout < < "ff.a: " < <ff.a < < "   " < <ff.b < < "   " < <ff.c < <endl;


为什么bit.b=3而ff.b=-1
不是说取补码吗怎么bit.b不是,而ff.b是取补码

[解决办法]
3,3,12
-1,3,-4
请按任意键继续. . .

[解决办法]
不会的应该是一样的 有3个位能就算一个符号剩下2位也能表示3以内的数据
[解决办法]
我测试的是3,没错.我用的是gcc version 3.4.4 20050721 (Red Hat 3.4.4-2)
你用的什么编译器?是不是它的问题

热点排行