

View previous topic :: View next topic 
Author 
Message 
manisha
Joined: 03 Feb 2012 Posts: 29

Binary conversion 
Posted: Mon May 21, 2012 6:52 am 


hello everyone....
I have a small problem in hex to binary conversion.....
I have used itoa function and got binary string which is printed as correct value but the problem is in extracting the specific bits from the binary string...
We can extract by either shift operation or ANDing with 0x01 for 0th bit, 0x02 for 1st bit.... and so on. But the value which I am getting is always zero for any binary number.. Even if I use bit_test function it is always read as 0...
If anyone has a solution for this please guide me.... 


temtronic
Joined: 01 Jul 2010 Posts: 9093 Location: Greensville,Ontario


Posted: Mon May 21, 2012 6:56 am 


PIC101...
please show us your code as there are dozens of solutions 


Ttelmah
Joined: 11 Mar 2010 Posts: 19215


Posted: Mon May 21, 2012 7:12 am 


It is not at all clear from your question, what your problem really is. Possibly a misunderstanding of 'what' types actually are?.
If you are using 'itoa', then you are starting _with_ a binary number, and turning it into a 'string' (an ASCII representation of this number). It is the original binary number on which you could use 'bit_test' to get the bits.
Code: 
int fred;
char str[10];
int1 abit;
int8 len;
fred = 10; //The variable 'fred' now contains the binary value b00001010
//Remember variables are stored in binary inside the processor
itoa(fred,2,str);
//The array 'str', now contains the ASCII characters representing fred
//_not_ a binary value, but the string representation of this value
abit=bit_test(fred,1);
//abit now contains '1' the second binary bit of fred.
len=strlen(str); //work out how long the string is > 4bytes in this case
//1010
if (str[len2]=='1')
abit=1;
else
abit=0;
//Do the same working from the 'string'. Now you have to find how long
//the string is, and work 'back' from there, doing text comparisons

From the string, you have to perform 'text' comparisons to find the bit value. Conversely from the original binary number you can just use bit tests.
I suspect you are getting confused about the difference between a binary number, and a string.
Best Wishes 




You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum

Powered by phpBB © 2001, 2005 phpBB Group
