定义的变量的位域就是4是什么意思?
如果你定义的变量的位域就是4的话,那确实变小了,但是如果位域不是4的话,那就是另一回事了,比如说下面的;unsignedcharc=0x80;c<<=1;这个得到的结果c...
如果你定义的变量的位域就是4的话,那确实变小了,但是如果位域不是4的话,那就是另一回事了,比如说下面的;
unsigned char c = 0x80;
c <<= 1;
这个得到的结果c = 0;
但是对于
unsigned int c = 0x80;
c <<= 1;
得到的结果确实256,而不是0,就是这个原因 展开
unsigned char c = 0x80;
c <<= 1;
这个得到的结果c = 0;
但是对于
unsigned int c = 0x80;
c <<= 1;
得到的结果确实256,而不是0,就是这个原因 展开
3个回答
展开全部
指的是变量分配的字节数,int变量占4个字节,char占1个字节
所以,位域 = 字节(byte)
unsigned char c = 0x80;
占1个字节,也就是8位(bit)
c的二进制1000 0000,左移一位,即0000 0000 ,c的二进制为0000 0000 即十进制0
unsigned int c = 0x80;
占4个字节,也就是32位(bit)
c的二进制为00000000 00000000 00000000 10000000,左移一位
即00000000 00000000 00000001 00000000,即十进制256,c = 256
所以,位域 = 字节(byte)
unsigned char c = 0x80;
占1个字节,也就是8位(bit)
c的二进制1000 0000,左移一位,即0000 0000 ,c的二进制为0000 0000 即十进制0
unsigned int c = 0x80;
占4个字节,也就是32位(bit)
c的二进制为00000000 00000000 00000000 10000000,左移一位
即00000000 00000000 00000001 00000000,即十进制256,c = 256
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询