ورود

View Full Version : سوال: مشكل در تبديل نوع متغير ها



noshin156
دوشنبه 22 خرداد 1391, 13:24 عصر
سلام
من مي خوام در زبان MFC دو تا متغير از نوع هگز رابگيرم و به هم بچسبانم وبعد به باينري تبديل كنم و در آخربيت هاي آن را تفكيك كنم مثلا


char c[],d[4] c
int b
{معادل AA در هگز}c[0]=170
{معادل 06 در هگز}d[0]=6
strncat(c,d,3) c

من مي خوام خروجي اين شكلي بشه :

d=aa06
b=1010101000000110

حالا مي خواهم 6 تا بيت اول را جدا كرده توي يك متغير و ده تاي دوم را توي يك متغير ديگه بريزم و بعد يكي يكي بيت ها را چك كنم يعني اين جوري

b1=101010
b2=100000110

مثلا اگر بيت آخر b2 يك بود فلگ را off كن
خواهشا اگر ميتونيد راهنمايي كنيد
با تشكر

noshin156
دوشنبه 22 خرداد 1391, 13:28 عصر
من خودم اين كد رو نوشتم ولي يه ايرادي داره :

strncat(c,d,3);
t=d[0];
if(d[0]<0)
t=d[0]+256;
//m_masage=d;
int b=0,v=1,r;
for(int i=0;t>0;i++)
{
r=t%2;
t=t/2;
b=b+r*v;
v=v*10;
}


من مقدار t (از نوع long و بي علامت است)رو برابر با d0 قرار دادم در نتيجه فقط مقدار خانه اول d را داخل t ميريزد و تبديل مي كند ولي من به همه خانه هاي d نياز دارم

يعني الان خروجي من اين شكليه :

d=aa06
{كه همان AA است} t=170
b=10101010

اگر ميتونيد كمك كنيد با تشكر

#target
دوشنبه 22 خرداد 1391, 14:57 عصر
اگه هدف جداسازی بیت ها هست میتونید با AND اینکارو انجام بدین
int b1 = 63 & b;
int b2 = 65472 & b;
با همین روش میتونید تست کنید که کدوم بین یک و کدوم صفر است