From 60ae1f3048769a1bb3d0a9c2c4f434699a2eb29e Mon Sep 17 00:00:00 2001 From: shockrahwow Date: Wed, 4 Sep 2019 17:45:09 -0700 Subject: [PATCH] 334 things smh --- 334/Makefile | 3 ++ 334/bin | Bin 0 -> 17112 bytes 334/bindec.c | 64 +++++++++++++++++++++++++++++++++++++ 334/responses/binhex.txt | 47 +++++++++++++++++++++++++++ 334/responses/os-intro.txt | 19 +++++++++++ 5 files changed, 133 insertions(+) create mode 100644 334/Makefile create mode 100755 334/bin create mode 100644 334/bindec.c create mode 100644 334/responses/binhex.txt create mode 100644 334/responses/os-intro.txt diff --git a/334/Makefile b/334/Makefile new file mode 100644 index 0000000..5a2856f --- /dev/null +++ b/334/Makefile @@ -0,0 +1,3 @@ +# Single make file for everything becauz lazy +1: + gcc bindec.c -o bin diff --git a/334/bin b/334/bin new file mode 100755 index 0000000000000000000000000000000000000000..c1564b356f1c9c6d129b1615086356073d3fcd36 GIT binary patch literal 17112 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 literal 0 HcmV?d00001 diff --git a/334/bindec.c b/334/bindec.c new file mode 100644 index 0000000..10579f8 --- /dev/null +++ b/334/bindec.c @@ -0,0 +1,64 @@ +#include +#include +#include + +// max length input string +#define MAXSTR 25 + +// convert input binary string to a number +int bindec(char*, size_t); + +int main() { + + // user input string + char s[MAXSTR+3]; + + // prompt for input + printf("> "); + + // read input string; at most MAXSTR+1 chars accepted + // Note: this is tricky. If we accept only MAXSTR chars, + // we can't see if user entered more chars and they are + // being dropped by fgets. + fgets(s, MAXSTR+3, stdin); + + // check input length; n does not include final carriage return + int n = strlen(s)-1; + if (n > MAXSTR) { + printf("input cannot be more than %d characters\n", MAXSTR); + exit(1); + } + + for(size_t i = 0; i < n; i++) { + if(s[i] == '0' || s[i] == '1') { + continue; + } + else { + printf("input must contain only zeros and ones\n"); + exit(1); + } + } + if(!n) { + printf("No input given only hit enter\n"); + exit(1); + } + + int output = bindec(s, MAXSTR); + printf("%d\n", output); + + return 0; +} + +int bindec(char* buf, size_t len) { + int ret = 0; + for(size_t i = 0; i < len; i++) { + if(buf[i] == '1') { + ret <<= 1; + ret++; + } + else { + ret <<= 0; + } + } + return ret; +} diff --git a/334/responses/binhex.txt b/334/responses/binhex.txt new file mode 100644 index 0000000..573c944 --- /dev/null +++ b/334/responses/binhex.txt @@ -0,0 +1,47 @@ + +# Problem lines begin with #@. +# For each problem, put your answer on +# the line following the problem line. +# Do not modify this file in any way +# except to insert your answers. + +#@ 1 -- enter a number +22 +#@ 2 -- enter a number +7 +#@ 3 -- enter a number +3 +#@ 4 -- enter a number +25 +#@ 5 -- enter a number +255 +#@ 6 -- enter a binary number +1101 +#@ 7 -- enter a binary number +10101 +#@ 8 -- enter a binary number +10000 +#@ 9 -- enter a binary number +110111 +#@ 10 -- enter a binary number +1010000 +#@ 11 -- enter a number +44 +#@ 12 -- enter a number +18 +#@ 13 -- enter a number +471 +#@ 14 -- enter a number +255 +#@ 15 -- enter a number +123 +#@ 16 -- enter a hex number (beginning with 0x) +0x12 +#@ 17 -- enter a hex number +0x05 +#@ 18 -- enter a hex number +0x58 +#@ 19 -- enter a hex number +0x7b +#@ 20 -- enter a hex number +0x64 diff --git a/334/responses/os-intro.txt b/334/responses/os-intro.txt new file mode 100644 index 0000000..eb32a76 --- /dev/null +++ b/334/responses/os-intro.txt @@ -0,0 +1,19 @@ + +# Homework 1 answer sheet. +# +# Problem lines begin with #@. +# For each problem, put your answer on +# the line following the problem line. +# Do not modify this file in any way +# except to insert your answers. + +#@ 1 -- enter 'a', 'b', or 'c' (don't use quotes in any answer) +a +#@ 2 -- enter 'a', 'b', or 'c' +b +#@ 3 -- enter one or more letters, separated by commas +b +#@ 4 -- enter 'a' or 'b' +a +#@ 5 -- enter 'a', 'b', or 'c' +b