ورود

View Full Version : سوال: جدا كردن بيت هاي يك كاركتر يك بايتي



amir ghasemiyan
سه شنبه 09 اردیبهشت 1393, 17:53 عصر
سلام دوستان
سوال زير رو توجه كنيد:
118477
تو نوشتن برنامش مشكل دارم. تا اينجا پيش رفتم بقيشو نميدونم بايد چكار كنم. شايد اصلا از اول اشتباهه. به هر حال ممنون ميشم راهنماييم كنيد


#include <iostream>


using namespace std;
char a;
int k;
int main()
{
char a='s';
cout<<a;

for (k=1;k<9;k++)
{
int value = (a & ( 1 << k )) >> k;
cout<<"\n"<<value;
}
}

rahnema1
سه شنبه 09 اردیبهشت 1393, 18:47 عصر
#include <iostream>
using namespace std;
int main()
{
unsigned char a=60;
int sl,sr,l,r;
l=(a>>4);
r=((unsigned char)(a<<4)>>4);
for (int k=1;k<5;k++)
{
sl+=(a>>(8-k));
a<<=k;
a>>=k;
}
for (int k=5;k<9;k++)
{
sr+=(a>>(8-k));
a<<=k;
a>>=k;
}
if (sr>sl)
cout<<r*l<<endl;
else
cout<<r/l<<endl;
return 0;
}

amir ghasemiyan
سه شنبه 09 اردیبهشت 1393, 21:01 عصر
ممنون دوست عزيز. خيلي ممنون

فقط اگه ممكنه اين دو خط رو بهم بگين چكار ميكنه. ممنون :قلب:

a<<=k
a>>=k

rahnema1
سه شنبه 09 اردیبهشت 1393, 22:17 عصر
این جور بهتره که یکی یکی بیتها را میکشه بیرون

#include <iostream>
using namespace std;
int main()
{
unsigned char a=60;
int sl,sr,l,r;
l=(a>>4);
r=((unsigned char)(a<<4)>>4);
for (int k=0;k<4;k++)
{
sl+=a>>7;
a<<=1;
}
for (int k=0;k<4;k++)
{
sr+=a>>7;
a<<=1;
}
if (sr>sl)
cout<<r*l<<endl;
else
cout<<r/l<<endl;
return 0;
}