I have got a String filled up with 0 and 1 and would like to get an Integer out of it:

String bitString = ""; 
int Number;
int tmp;

bitString = "";
  for (i=1;i<=10;i++)
    tmp= analogRead (A0);
    bitString +=  tmp % 2;
// now bitString contains for example "10100110" 
// Number = bitstring to int <-------------
// In the end I want that the variable Number contains the integer 166
  • What is the question? What do you expect this code to do and what is it doing? What else have you tried?
    – Craig
    May 12, 2014 at 18:42
  • @Craig I eddited the question. For example If the bitString contains a "10100110" I want the programm to save it as the decimal 166 in the int variable.
    – kimliv
    May 12, 2014 at 18:46
  • Do you need the string? You could create the integer representation directly.
    – Craig
    May 12, 2014 at 19:14
  • @Craig i would also like to print out the bitstring
    – kimliv
    May 12, 2014 at 19:15

2 Answers 2


If you only need the string for printing you can store value in an integer and then use the Serial.print(number,BIN) function to format the output as a binary value. Appending integers to strings is a potentially costly operation both in performance and memory usage.

int Number = 0;
int tmp;

for (int i=9;i>=0;i--) {
  tmp = analogRead (A0);
  Number += (tmp % 2) << i;
Serial.print(Number, BIN);
  • Yes your solution looks more efficient! and does the work
    – kimliv
    May 12, 2014 at 19:36

Check out strtoul()

It should work something like this:

unsigned long result = strtoul(bitstring.c_str(), NULL, 2);

Now you have a long variable which can be converted into an int if needed.

  • @kimliv Did you add .c_str() to the end of bitstring as Peter pointed out above? c_str() should return a const char*.
    – Doowybbob
    May 12, 2014 at 19:22
  • it is working that way!
    – kimliv
    May 12, 2014 at 19:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.