c语言中如果int a=5,b=1; t=(a<<2|b);请问t=? 详解
6个回答
展开全部
a*4+1=21
左移一位相当于*2,两位就*2*2 |相当与加
左移一位相当于*2,两位就*2*2 |相当与加
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-08-25
展开全部
<<的优先级高
a<<2:10100
1:00001
t=10101
十进制为21
a<<2:10100
1:00001
t=10101
十进制为21
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
2|b=00000011
t=a<<(2|b)=00101000
t=40
我也是正在学习,不晓得算对没哈!!!
t=a<<(2|b)=00101000
t=40
我也是正在学习,不晓得算对没哈!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
/*程序已测试OK*/
#include "stdio.h"
#include "conio.h"
int a[]=;
int b[]=;
/************************************************************/
/*排序 */
/* *Block 指向数组的指针 */
/* Quantity 数据总数 */
/************************************************************/
void Seqencing(int *Block,unsigned int Quantity)
{
unsigned int i,j;
int n;
for(i=0;i<Quantity;i++)
{
for(j=i+1;j<Quantity;j++)
{
if(*(Block+i)>*(Block+j))
{
n=*(Block+j);
*(Block+j)=*(Block+i);
*(Block+i) = n;
}
}
}
}
/***********************************************************/
/*求是否相等 */
/*Quantity 数据总数 */
/***********************************************************/
char Compare(unsigned int Quantity)
{
int size1,size2;
unsigned int i;
if(sizeof(a) == sizeof(b))
{
for(i = 0; i<Quantity;i++)
{
if(a[i] != b[i])return 0; /*如果有不相等的则返回 0*/
}
return 1;
}
else
return 0; /*都相等的则返回 1*/
}
void main()
{
int block;
unsigned int i;
block = sizeof(a)/2; /*计算数组数据个数*/
Seqencing(a,block); /*对数组进行排序*/
printf("\n\n-------------------------------------------------------------------------------\n\n");
for(i=0; i<block;i++)
{
printf("a:%d\t",a[i]); /*输出排序结果*/
}
printf("\n\n-------------------------------------------------------------------------------\n\n");
block = sizeof(b)/2;
Seqencing(b,block);
printf("\n\n-------------------------------------------------------------------------------\n\n");
for(i=0; i<block;i++)
{
printf("b:%d\t",b[i]);
}
printf("\n\n-------------------------------------------------------------------------------\n\n");
if(Compare(block)) /*判断数组是否相等*/
printf("result: a = b");/*输出判断结果*/
else
printf("result: a != b");
getch();
}
#include "stdio.h"
#include "conio.h"
int a[]=;
int b[]=;
/************************************************************/
/*排序 */
/* *Block 指向数组的指针 */
/* Quantity 数据总数 */
/************************************************************/
void Seqencing(int *Block,unsigned int Quantity)
{
unsigned int i,j;
int n;
for(i=0;i<Quantity;i++)
{
for(j=i+1;j<Quantity;j++)
{
if(*(Block+i)>*(Block+j))
{
n=*(Block+j);
*(Block+j)=*(Block+i);
*(Block+i) = n;
}
}
}
}
/***********************************************************/
/*求是否相等 */
/*Quantity 数据总数 */
/***********************************************************/
char Compare(unsigned int Quantity)
{
int size1,size2;
unsigned int i;
if(sizeof(a) == sizeof(b))
{
for(i = 0; i<Quantity;i++)
{
if(a[i] != b[i])return 0; /*如果有不相等的则返回 0*/
}
return 1;
}
else
return 0; /*都相等的则返回 1*/
}
void main()
{
int block;
unsigned int i;
block = sizeof(a)/2; /*计算数组数据个数*/
Seqencing(a,block); /*对数组进行排序*/
printf("\n\n-------------------------------------------------------------------------------\n\n");
for(i=0; i<block;i++)
{
printf("a:%d\t",a[i]); /*输出排序结果*/
}
printf("\n\n-------------------------------------------------------------------------------\n\n");
block = sizeof(b)/2;
Seqencing(b,block);
printf("\n\n-------------------------------------------------------------------------------\n\n");
for(i=0; i<block;i++)
{
printf("b:%d\t",b[i]);
}
printf("\n\n-------------------------------------------------------------------------------\n\n");
if(Compare(block)) /*判断数组是否相等*/
printf("result: a = b");/*输出判断结果*/
else
printf("result: a != b");
getch();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询