## Where communities thrive

• Join over 1.5M+ people
• Join over 100K+ communities
• Free without limits
##### Activity
CamperBot
@camperbot

hint [5/7]

type hint for next hint :pencil: [Contribute at the FCC Wiki]

@ijb87
hint
CamperBot
@camperbot

hint [6/7]

## Code Solution:

function binaryAgent(str) {
biString = str.split(' ');
uniString = [];

/*using the radix (or base) parameter in parseInt, we can convert the binary
number to a decimal number while simultaneously converting to a char*/

for(i=0;i < biString.length;i++){
uniString.push(String.fromCharCode(parseInt(biString[i], 2)));
}
//we then simply join the string
return uniString.join('');
}

# Code Explanation:

• Separate the string into an array of strings separated by whitespace.
• Create some variables that will be needed along the way, the names are self explanatory for the most part.
• Iterate through each binary string in the new array.
• Convert to decimal by using parseInt(binary, 2) (with the second parameter we tell in which base our numbers currently are)
• At the end, we return out converted message.

type hint for next hint :pencil: [Contribute at the FCC Wiki]

jonhova
@jonhova
hint mutations
CamperBot
@camperbot

hint [1/9]

## ## :construction: After this are possible spoiler hints.

Make sure you've tried to hard to solve it yourself before proceeding. :construction:

type hint for next hint :pencil: [Contribute at the FCC Wiki]

jonhova
@jonhova
hint
CamperBot
@camperbot

hint [2/9]

# Explanation:

This problem is very straight forward, you will get string that will represent a sentence in binary code, and you need to translate that into words. There is not direct way to do this so you will have to translate twice.

You should first convert from binary to decimal and from decimal before translating those values into characters

type hint for next hint :pencil: [Contribute at the FCC Wiki]

Erin McCool
@emccool
hint
CamperBot
@camperbot

hint [3/9]

## Hint: 2

Things are easier when focusing on smaller parts, divide the input to focus on one letter at the time.

type hint for next hint :pencil: [Contribute at the FCC Wiki]

jonhova
@jonhova
hint
CamperBot
@camperbot

hint [4/9]

## Hint: 3

Make sure that each time you transcode a character from binary to decimal, that you reset whatever variable you used to keep track of the ones. Also do not forget to turn everything back into one string.

type hint for next hint :pencil: [Contribute at the FCC Wiki]

Scott Stringfellow
@stringf5
hint
CamperBot
@camperbot

hint [1/10]

## ## :construction: After this are possible spoiler hints.

Make sure you've tried to hard to solve it yourself before proceeding. :construction:

type hint for next hint :pencil: [Contribute at the FCC Wiki]

Scott Stringfellow
@stringf5
hint
CamperBot
@camperbot

hint [2/10]

# Explanation:

This problem is very straight forward, you will get a string that will represent a sentence in binary code, and you need to translate that into words. There is not direct way to do this so you will have to translate twice.

type hint for next hint :pencil: [Contribute at the FCC Wiki]

Scott Stringfellow
@stringf5
hint
CamperBot
@camperbot

hint [3/10]

## Hint: 1

You should first convert from binary to decimal before translating those values into characters

type hint for next hint :pencil: [Contribute at the FCC Wiki]

Scott Stringfellow
@stringf5
hint
CamperBot
@camperbot

hint [4/10]

## Hint: 2

Things are easier when focusing on smaller parts, divide the input to focus on one letter at the time.

type hint for next hint :pencil: [Contribute at the FCC Wiki]

Scott Stringfellow
@stringf5
hint
CamperBot
@camperbot

hint [5/10]

## Hint: 3

Make sure that each time you transcode a character from binary to decimal, you reset whatever variable you used to keep track of the ones. Also do not forget to turn everything back into one string.

type hint for next hint :pencil: [Contribute at the FCC Wiki]

Scott Stringfellow
@stringf5
hint
CamperBot
@camperbot

hint [6/10]

type hint for next hint :pencil: [Contribute at the FCC Wiki]

Scott Stringfellow
@stringf5
hint
CamperBot
@camperbot

hint [7/10]

## Code Solution 1:

function binaryAgent(str) {
biString = str.split(' ');
uniString = [];

/*using the radix (or base) parameter in parseInt, we can convert the binary
number to a decimal number while simultaneously converting to a char*/

for(i=0;i < biString.length;i++){
uniString.push(String.fromCharCode(parseInt(biString[i], 2)));
}
//we then simply join the string
return uniString.join('');
}

# Code Explanation:

• Separate the string into an array of strings separated by whitespace.
• Create some variables that will be needed along the way, the names are self explanatory for the most part.
• Iterate through each binary string in the new array.
• Convert to decimal by using parseInt(binary, 2) (with the second parameter we tell in which base our numbers currently are)
• At the end, we return out converted message.

type hint for next hint :pencil: [Contribute at the FCC Wiki]

Scott Stringfellow
@stringf5
hint
CamperBot
@camperbot

hint [8/10]

## Code Solution 2:

function binaryAgent(str) {
// Separate the binary code by space.
str = str.split(' ');
var power;
var decValue = 0;
var sentence = '';

// Check each binary number from the array.
for (var s = 0; s < str.length; s++) {
// Check each bit from binary number
for (var t = 0; t < str[s].length; t++) {
// This only takes into consideration the active ones.
if (str[s][t] == 1) {
// This is quivalent to 2 ** position
power = Math.pow(2, +str[s].length - t - 1);
decValue += power;

// Record the decimal value by adding the number to the previous one.
}
}

// After the binary number is converted to decimal, convert it to string and store
sentence += (String.fromCharCode(decValue));

// Reset decimal value for next binary number.
decValue = 0;
}

return sentence;
}

# Code Explanation

• For each of these binary strings, check for the ones and ignore the zeroes.
• For those that are one or active then convert them to decimal, this takes into account the position and the right power it needs to be raised to.
• Store the power into the power variable by adding it to any previous ones on the variable decValue. This variable will add and add the powers of the active ones until the end of the loop and then return the decimal number.
• Convert the final decimal outside of the inner loop and then convert it to ASCII and saving it to sentence along with any other text string already converted and stored.
• Reset the variable decValue to avoid getting wrong decimals before continuing to the outer loop.

type hint for next hint :pencil: [Contribute at the FCC Wiki]

Scott Stringfellow
@stringf5
hint
CamperBot
@camperbot

hint [9/10]

## Code Solution 3:

function binaryAgent(str) {
return String.fromCharCode(...str.split(" ").map(function(char){ return parseInt(char, 2); }));
}

# Code Explanation

• First we use split() to be able to work on each character as an Array element
• Then use map() to process each element from binary to decimal using pareseInt()
• Last we can use String.fromCharCode() to convert each ASCII number into the corresponding character
• However fromCharCode() expects a series of numbers rather than an Array! We can use ES6 Spread Operator to pass in an Array of numbers as individual numbers. See here for more info; https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_operator

type hint for next hint :pencil: [Contribute at the FCC Wiki]

Scott Stringfellow
@stringf5
hint
CamperBot
@camperbot

hint [10/10]

## Code Solution 4:

function binaryAgent(str) {
var re = /(\d+)(\s?)/g;
function convertToChar(match,p1,p2){
return String.fromCharCode(parseInt(p1, 2));
}
return str.replace(re, convertToChar);
}

# Code Explanation

• In this solution we use String.replace() to find all the binary numbers and convert them to characters
• First we use a regular expression to find all the binary numbers and optional trailing spaces
• Then we define a function that converts the first parenthesized submatch into a number parseInt() and then into a characterString.fromCharCode(). By not using the second parenthisized submatch we leave out all the spaces that where in between the binary numbers.
• Lastly we use our defined regex and function in the String.replace() function.

# Credits:

If you found this page useful, you can give thanks by copying and pasting this on the main chat: thanks @Rafase282 @JamesKee @sabahang @crisvdkooij for your help with Bonfire: Binary Agents

type hint for next hint :pencil: [Contribute at the FCC Wiki]

Duane Bender
@dbender
My Binary Agents function seems to work. I log the string to the console before returning it, and the strings are correct, but it fails both tests. And I don’t know what this means, but in the black box under the Run Tests button, it shows the string “Aren’t bonfires fun!?” followed by 6 rows of red dots.
Karolis
@Luomint
hint telephone
CamperBot
@camperbot

hint [1/10]

## ## :construction: After this are possible spoiler hints.

Make sure you've tried to hard to solve it yourself before proceeding. :construction:

type hint for next hint :pencil: [Contribute at the FCC Wiki]

Karolis
@Luomint
hint
CamperBot
@camperbot

hint [2/10]

# Explanation:

This problem is very straight forward, you will get a string that will represent a sentence in binary code, and you need to translate that into words. There is not direct way to do this so you will have to translate twice.

type hint for next hint :pencil: [Contribute at the FCC Wiki]

Karolis
@Luomint
hint
CamperBot
@camperbot

hint [3/10]

## Hint: 1

You should first convert from binary to decimal before translating those values into characters

type hint for next hint :pencil: [Contribute at the FCC Wiki]

Karolis
@Luomint
hint
CamperBot
@camperbot

hint [4/10]

## Hint: 2

Things are easier when focusing on smaller parts, divide the input to focus on one letter at the time.

type hint for next hint :pencil: [Contribute at the FCC Wiki]

Karolis
@Luomint
hint
CamperBot
@camperbot

hint [5/10]

## Hint: 3

Make sure that each time you transcode a character from binary to decimal, you reset whatever variable you used to keep track of the ones. Also do not forget to turn everything back into one string.

type hint for next hint :pencil: [Contribute at the FCC Wiki]

Karolis
@Luomint
hint
CamperBot
@camperbot

hint [6/10]

type hint for next hint :pencil: [Contribute at the FCC Wiki]

Karolis
@Luomint
hint
CamperBot
@camperbot

hint [7/10]

## Code Solution 1:

function binaryAgent(str) {
biString = str.split(' ');
uniString = [];

/*using the radix (or base) parameter in parseInt, we can convert the binary
number to a decimal number while simultaneously converting to a char*/

for(i=0;i < biString.length;i++){
uniString.push(String.fromCharCode(parseInt(biString[i], 2)));
}
//we then simply join the string
return uniString.join('');
}

# Code Explanation:

• Separate the string into an array of strings separated by whitespace.
• Create some variables that will be needed along the way, the names are self explanatory for the most part.
• Iterate through each binary string in the new array.
• Convert to decimal by using parseInt(binary, 2) (with the second parameter we tell in which base our numbers currently are)
• At the end, we return out converted message.

type hint for next hint :pencil: [Contribute at the FCC Wiki]

Santak Mishra
@santakmishra
hint binary agents
CamperBot
@camperbot

hint [1/1]

## ## :construction: After this are possible spoiler hints.

Make sure you've tried to hard to solve it yourself before proceeding. :construction:

type hint for next hint :pencil: [Contribute at the FCC Wiki]

Santak Mishra
@santakmishra
hint
CamperBot
@camperbot
These hints depend on people like you! Please add to this :point_right: Bonfire's Wiki Hints Page