I need a Programmer
Presupuesto $10-30 USD
Your task is to develop a C program, called ascii2bin, that
reads a string of 1's and 0's as ASCII digits, and
outputs the equivalent decimal number
Your program must
exercises the read() system call to read a single byte, at a time, from stdin
validate that the read byte is appropriate for conversion, e.g., it must be either an ASCII '0' or '1'
converts each byte into an integer value via a mathematical expression
uses the resulting integer as part of the calcuation to determine the final number
identifies the end of a input string by either end of file or by a new line
End of file is detected when read() returns the value '0'
A new line is identified in the ASCII table as either: newline, nl, LF, or \n'
prints this final number on stdout
returns a value of 0 upon success and 1 otherwise
The Algorithm
offset = ?;
number = 0;
retval = read(0, &ascii_value, 1);
while (retval == 1)
digit = ascii_value - offset;
number = number << 1 + digit;
retval = read(0, &ascii_value, 1);
printf("%d\n", number);
return 0;
Validation Checks:
You should add additional validation checks to your code to catch potential errors. At a minimum, validate the following:
that each ASCII input character is one of the following characters: '0', '1', or '\n'
that the calculated number does not exceed 2^32
I am having trouble with this program I have most of the code but my output does not match the Professors completely:
#include <stdio.h>
#include <unistd.h>
int main()
{
int offset = 48; // ascii value of '0'
int number = 0;
char ascii_value;
int retval = read(0, &ascii_value, 1);
while ((retval == 1) && (ascii_value != '\n')) {
int digit = ascii_value - offset;
if ((digit == 1) || (digit == 0))
number = (number << 1) + digit;
retval = read(0, &ascii_value, 1);
}
printf("%u\n", number);
return 0;
}
These are his test file information:
$ script [login to view URL]
$ ascii2bin
0101
^d
5
$ cat [login to view URL] | ./ascii2bin ; echo $?
54356
0
$ cat [login to view URL] | ./ascii2bin ; echo $?
138
0
$ cat [login to view URL] | ./ascii2bin ; echo $?
2863311530
0
$ cat [login to view URL] | ./ascii2bin ; echo $?
4294967295
0
$ cat [login to view URL] | ./ascii2bin ; echo $?
1
Adjudicado a:
I already did it. It works fine. Let me know if you need any help. Proposed code is below. I can swap out that "switch" for a simpler "if" statement if you like. #include <stdio.h> #include <unistd.h> int main() Más
10 freelancers están ofertando un promedio de $23 por este trabajo
Hi there, I went through the requirements and I would like to do this project if given the opportunity. Let me know if you are interested.
HI..i am proficient in C/C++ programming with data structures, algorithms and can help you write the console program for reading strings of 0's and 1's and convert it to decimal.
###### Having Teaching Experience in C, Python, Data structure, Algorithm Design and Analysis ######## Hi, Greetings. I am a computer engineer having masters in Mathematics, Computer Science and PhD in Computer Scien Más
Hi, "I have gone through your description. "This is my area of specialization, i can get it done 100 % perfectly well. Please ping me in person. I can help you to complete all tasks. I have hands-on experience in Más
Dear Sir. As an experienced algorithm expert, it is very interesting to me. I have been working on several data structure & algorithm projects such yours for over 7+ years. Since having programming contestant experienc Más
Dear Sir. As an experienced C/C++ programmer, it is interesting to me. I have been working on various C/C++ projects for 7+ years. I have read your project description carefully and I can surely do it in an hour, even Más
Hi; i can help you Now (immediately) send me a message so that we can discuss more. Thanks and regards.
Hi I'm a senior software engineer with 3 years experience. I think I can help you with debugging your code. Please share the test case that is failing Regards