User Tools

Site Tools


notes:sysprog:projects:wut2

This is an old revision of the document!


SYSPROG PROJECT: Writing Unix Tools 2.0 (wut2)

Objective:

Input under each section examples of your program running using different options

binary.c

parity.c

endian.c

checksum.c

twoscomp.c

addition.c - Kris

addition.c is an addition program that uses bitwise logic to add two numbers together. The absolute size limit for numbers is 255, though it may be smaller if a smaller word size (either 7 bits or a nibble) is chosen. Sums can go over this, but won't be reported in the results. If you want the carry, there's an option for that.

The bare minimum operation is: ./addition -s “10001000 00101000” or echo “10001000 00101000” | ./addition or ./addition file

where file contains “10001000 00101000” (minus quotes)… note that if other options are specified, file must follow all of the options or the program will complain.

By default, the program expects 8-bits of binary input for each number to be added. If you have less or more than this (i.e. type “1001 0100” instead of the other string up above), it will complain.

There are some additional options, depending on what type of numbers you want to add. You can change base to 8, 10, or 16 by specifying -b 8 or -b 10 or -b 16 on the command line (-b 2 is also possible but unnecessary, as base 2 is the default). For example,

./addition -s “020 100” -b 10

will print “120”

bitmask.c - Andrei Bratkovski


Examples

base 2 (default)
./bitmask -M “10110111” -s “10011010 11010001”
10010010
10010001

base 8
./bitmask -M “66” -s “77 77” -b 8
66
66

base 10
./bitmask -M “31 -s “30” -b 10
30

base 16
./bitmask -M “FE” -s “FF” -b 16
0xFE

delimiter example
./bitmask -M “66” -s “77s77” -b 8 -d “s”
66
66

word size example ./bitmask -M “65535” -s “65534” -w128 -b10
65534

Help
./bitmask -h

Bitmask options:
-M 'BITMASK' specify bitmask value for processing (required)
-b 'BASE' input/output base (of 2, 8, 10, or 16; base 2 is default)
-w # set wordsize (power of 2 between 4 and 128, 8 is default)

Options displayed here for help:
-h display usage information and exit
-V display version information and exit
-s 'STRING' specify STRING as value to process
-4 set nibble as processing unit/word size
-7 set byte/word as 7-bits
-8 set byte/word as 8-bits (default)
-n no delimiter between processing units
-d 'CHAR' use CHAR as delimiter between processing units (space is default)
-q quiet, do not display anything to STDOUT
-v verbose, display more information to STDOUT

Version
./bitmask -V
./bitmask Awesome version 1.0

rotate.c

invert.c

notes/sysprog/projects/wut2.1518653260.txt.gz · Last modified: 2018/02/15 00:07 by kbeykirc