33,311
社区成员
发帖
与我相关
我的任务
分享
bool ispower2(int x)
{
return !(x&(x-1)) && !x; //排除了0的情况
}
int mult8(int a){
switch(a&0xF0000000)
{
case 0:
return (a << 3);
case 0x80000000:
return ((a << 3)|0x80000000);
default:
printf("overflow\n");
return 0;
}
}
int mult7( int a )
{
return ( mult8( a ) - a );
}
bool ispower2(int x)
{
return !(x&(x-1));
}
int mult8(int a){
return (a << 3);
}
int mult7(int a){
return (a << 3) - a;
}
//在VS2005下通过.
//思路: 转为字符串,在后面加上000,即增加1000倍,再除以125 即乘以8
public int fvfmul8(int a)
{
string c;
c = Convert.ToString(a);
c = c.Insert(c.Length,"000");
return Convert.ToInt32(c) / 125;
}