For personnal use only

Size: px
Start display at page:

Download "For personnal use only"

Transcription

1 Korn Shell 93 Bit Manipulation Finnbarr P. Murphy When programmers think about bitwise manipulation, they usually think about using C or C++ to solve their problem since both programming languages provide a rich set of features which make it easy to perform bitwise manipulation. However it is possible to just as easily perform such operations using the ksh93 shell. This post will explain what bitwise manipulation and number conversion facilities are available in ksh93 and provide some hopefully useful utilities and examples. Many programmers are unaware that ksh93 has builtin support for different numeral radices (AKA arithmetic bases) as shown in the following example. $ print $(( )) 30 $ print $(( 2# )) 22 $ print $(( 2#10 + 4#20 )) 10 $ where base 2 is denoted by 2#, base 4 by #4 and so on. The general case syntax is [base#]n where base is a decimal number between 2 and 36 representing the arithmetic base and n is a number in that base. You can mix and match bases within expressions. As you would expect, the default base, i.e. if [base#] is omitted, is decimal(10). Here is an example of how to convert decimal 255 to base 2, base 8 and base 16 respectively using the typeset command. $ typeset -i2 a=255 $ echo $a 2# $ typeset -i8 a=255 $ echo $a 8#377 $ typeset -i16 a=255 $ echo $a 16#ff $ Note that ksh93 displays the base prefix before each number unless it is a decimal number, i.e. base 10. The bitwise manipulation operators in ksh93 are AND, OR, XOR, SHIFT LEFT and SHIFT RIGHT. There are no SHIFT ROTATE or COMPLEMENT operators. The following is the list of supported bitwise operators in decreasing order of precedence which, by the way, is the same as in the C programming language. <> Bitwise shift left, shift right & Bitwise AND ^ Bitwise XOR Bitwise OR Copyright Finnbarr P. Murphy. All rights reserved. 1/6

2 The following shell script includes both logical and bitwise operators together with the expected output for each statement. Notice the difference in output between a logical and bitwise operator. integer -i2 a=5 integer -i2 b=6 # expected output 1 print $(( a < b )) # expected output 0 print $(( a > b )) # expected output 3 print $(( a ^ b )) # expected output 4 print $(( a & b )) # expected output 1 print $(( a && b )) # expected output 7 print $(( a b )) # expected output 1 print $(( a b )) A useful feature of bitwise operators is that by using the shift left and shift right bitwise operators you can mimic multiplication or division by 2 or a power of 2. $ x=4 $ print $((x < 8 $ print $(( x < 16 $ print $(( x >> 1 )) 2 $ print $(( x >> 2 )) 1 Here is a fairly simple shell script which uses numeric base conversion and bitwise operators to calculate the network and broadcast addresses for a given IP address and subnet mask.\ typeset -i2 mask=255 [[ $#!= 2 ]] && { echo "Usage: $0 ipaddress subnetmask" exit 1 } SaveIFS=$IFS IFS=. typeset -a IParr=($1) typeset -a NMarr=($2) IFS=$SaveIFS typeset -i2 ip1=${iparr[0]} typeset -i2 ip2=${iparr[1]} typeset -i2 ip3=${iparr[2]} typeset -i2 ip4=${iparr[3]} typeset -i2 nm1=${nmarr[0]} typeset -i2 nm2=${nmarr[1]} typeset -i2 nm3=${nmarr[2]} typeset -i2 nm4=${nmarr[3]} echo echo " IP Address: $1" echo " Subnet Mask: $2" echo " Network Address: $((ip1 & nm1)).$((ip2 & nm2)).$((ip3 & nm3)).$((ip4 & amp; nm4))" echo "Broadcast Address: $((ip1 (mask ^ nm1))).$((ip2 (mask ^ nm2))).$((ip3 (mask ^ nm3))).$(( ip4 (mask ^ nm4)))" Copyright Finnbarr P. Murphy. All rights reserved. 2/6

3 echo exit 0 Some sample output for this script. $./calculate-address IP Address: Subnet Mask: Network Address: Broadcast Address: $./calculate-address IP Address: Subnet Mask: Network Address: Broadcast Address: The next example calculates the network and broadcast addresses for a Classless Inter-Domain Routing (CIDR) compliant IP address. Note the use of the shift right operator in calculating the network mask. [[ $#!= 1 ]] && { echo "Usage: $0 ipaddress/netmask" exit 1 } SaveIFS=$IFS IFS="./" typeset -a IParr=($1) IFS=$SaveIFS typeset -i2 ip1=${iparr[0]} typeset -i2 ip2=${iparr[1]} typeset -i2 ip3=${iparr[2]} typeset -i2 ip4=${iparr[3]} typeset -i2 cidr=${iparr[4]} typeset -i2 nm1=0 nm2=0 nm3=0 nm4=0 typeset -i quad=$(( cidr / 8 )) sigbits=$(( cidr % 8 )) if (( sigbits!= 0 )); then slot=$(( ( 256 >> $sigbits ) )) fi for (( i=1; i < 5; i++ )) nameref nm=nm${i} if (( quad!= 0 )); then nm=255 (( --quad )) elif (( quad == 0 )); then nm=slot break fi ne typeset -i2 mask=255 print print " IP Address: $((ip1)).$((ip2)).$((ip3)).$((ip4))" print " CIDR Netmask Mask: $((nm1)).$((nm2)).$((nm3)).$((nm4))" print " CIDR Network (Route): $((ip1 & nm1)).$((ip2 & nm2)).$((ip3 & nm3)).$(( ip4 & nm4))" print " Broadcast Address: $((ip1 (mask ^ nm1))).$((ip2 (mask ^ nm2))).$((ip3 (ma sk ^ nm3))).$((ip4 (mask ^ n m4)))" Copyright Finnbarr P. Murphy. All rights reserved. 3/6

4 print exit 0 Sample output: $./calculate-address " /18" IP Address: CIDR Network Mask: CIDR Network (Route): Broadcast Address: For my example, suppose you are given a hexadecimal string 3AF9:3B01 and you want to expand that string to produce a list of all the values between 3AF9 and 3B01. The wrinkle is that you want all letters in the hexadecimal numbers to be uppercased. x=3af9:3b01 typeset -i16 a=0x${x%:*} typeset -i16 b=0x${x#*:} typeset -u c for (( ; a <= b; a++ )) c=${a:3} echo "$c" ne Here is the output: $./hexlist 3AF9 3AFA 3AFB 3AFC 3AFD 3AFE 3AFF 3B00 3B01 Here is another interesting example of using bit arithmetic to solve a problem. In this particular case, the user wanted to have a shell script which accepted a 32-bit hexadecimal number as input and assigns consecutive blocks of 4 bits of the equivalent binary number to each of 8 variables. integer -i2 mask=16#f integer -i2 v0 v1 v2 v3 v4 v5 v6 v7 read hn?"enter a 32-bit hex decimal number: " integer -i2 in=16#$hn for ((i=0; i < 8; i++)) nameref var=v${i} var=$(( ((in << (i*4)) & mask) >> 28 )) ne printf "% d\n" $in printf "%04.0.2d %04.0.2d %04.0.2d %04.0.2d %04.0.2d %04.0.2d %04.0.2d %04.0.2d\n" \ $v0 $v1 $v2 $v3 $v4 $v5 $v6 $v Copyright Finnbarr P. Murphy. All rights reserved. 4/6

5 Note the use of a third specifier with %d. In ksh93, each of the integral format specifiers can have a third modifier after width and precision that specifies the base of the conversion from 2 to 64. In addition the use of the # modifier as the third specifier will cause base# to be prepended to the value. Here is sample output for this script: $./hexblock Enter a 32-bit hex decimal number: abcdabcd $./hexblock Enter a 32-bit hex decimal number: AFC Suppose instead that you wanted to store the individual bits in an array. Here is one way to this is: read num?"enter binary 32 bit number: " integer -i2 a=2#$num integer -i2 mask=2# typeset -ui barray=( ) for (( i=0; i < 32; i++, mask=$(( mask << 1)) )) nameref var=barray[$i] (( $mask & $a )) && var=1 ne # how to test the array values if (( ${barray[0]} )) then echo "barray[0] is 1" else echo "barray[0] is 0" fi This example calculates the binary and decimal equivalent of an IP address: [[ $#!= 1 ]] && { echo "Usage: $0 ipaddress" exit 1 } SaveIFS=$IFS IFS="." typeset -a IParr=($1) IFS=$SaveIFS typeset -i2 ip1=${iparr[0]} typeset -i2 ip2=${iparr[1]} typeset -i2 ip3=${iparr[2]} typeset -i2 ip4=${iparr[3]} typeset -ui2 d=$(( (ip1 << 24) (ip2 << 16) (ip3 << 8) ip4 )) print "Inputted IP$ address: $((ip1)).$((ip2)).$((ip3)).$((ip4))" print " Binary equivalent: $d" print " Decimal equivalent: $((d))" exit Copyright Finnbarr P. Murphy. All rights reserved. 5/6

6 Here is sample output: $./example Inputted IP$ address: Binary equivalent: 2# Decimal equivalent: Finally, I would be amiss if I did not point out that both the bash and zsh shells also provide a full set of bitwise operators and support number base conversion Copyright Finnbarr P. Murphy. All rights reserved. 6/6

COMP 4/6262: Programming UNIX

COMP 4/6262: Programming UNIX COMP 4/6262: Programming UNIX Lecture 12 shells, shell programming: passing arguments, if, debug March 13, 2006 Outline shells shell programming passing arguments (KW Ch.7) exit status if (KW Ch.8) test

More information

For personnal use only

For personnal use only Manipulating Binary Data Using The Korn Shell Finnbarr P. Murphy (fpm@fpmurphy.com) Most people are unaware that ksh93 (Korn Shell 93) can handle binary data. As the following examples will demonstrate,

More information

For personnal use only

For personnal use only Korn Shell 93 Extended I/0 Finnbarr P Murphy (fpm@fpmurphycom) The ksh93 exec command is a special overloaded built-in command that can be used to manipulate le descriptors or to replace the current shell

More information

Operators in C. Staff Incharge: S.Sasirekha

Operators in C. Staff Incharge: S.Sasirekha Operators in C Staff Incharge: S.Sasirekha Operators An operator is a symbol which helps the user to command the computer to do a certain mathematical or logical manipulations. Operators are used in C

More information

NUMERIC SYSTEMS USED IN NETWORKING

NUMERIC SYSTEMS USED IN NETWORKING NUMERIC SYSTEMS USED IN NETWORKING Decimal - Binary - Hexadecimal Table ASCII Code 128 64 32 16 8 4 2 1 The Letter A 0 1 0 0 0 0 0 1 Data Units Base 10 Numbering System Base 2 Numbering System Decimal

More information

Some Subnetting Practice Problem Solutions

Some Subnetting Practice Problem Solutions Some Subnetting Practice Problem Solutions practice problem 1. What is 23.183.62.51 in binary? Solution: dec bin 23 0001 0111 183 1011 0111 62 0011 1110 51 0011 0011 2. What class address is this? Solution:

More information

Cisco IOS Shell. Finding Feature Information. Prerequisites for Cisco IOS.sh. Last Updated: December 14, 2012

Cisco IOS Shell. Finding Feature Information. Prerequisites for Cisco IOS.sh. Last Updated: December 14, 2012 Cisco IOS Shell Last Updated: December 14, 2012 The Cisco IOS Shell (IOS.sh) feature provides shell scripting capability to the Cisco IOS command-lineinterface (CLI) environment. Cisco IOS.sh enhances

More information

Arithmetic Operations

Arithmetic Operations Arithmetic Operations Arithmetic Operations addition subtraction multiplication division Each of these operations on the integer representations: unsigned two's complement 1 Addition One bit of binary

More information

LAB A Translating Data to Binary

LAB A Translating Data to Binary LAB A Translating Data to Binary Create a directory for this lab and perform in it the following groups of tasks: LabA1.java 1. Write the Java app LabA1 that takes an int via a command-line argument args[0]

More information

IP Addresses McGraw-Hill The McGraw-Hill Companies, Inc., 2000

IP Addresses McGraw-Hill The McGraw-Hill Companies, Inc., 2000 IP Addresses The IP addresses are unique. An IPv4 address is a 32-bit address. An IPv6 address is a 128-bit address. The address space of IPv4 is 2 32 or 4,294,967,296. The address space of IPv6 is 2 128

More information

CS113: Lecture 3. Topics: Variables. Data types. Arithmetic and Bitwise Operators. Order of Evaluation

CS113: Lecture 3. Topics: Variables. Data types. Arithmetic and Bitwise Operators. Order of Evaluation CS113: Lecture 3 Topics: Variables Data types Arithmetic and Bitwise Operators Order of Evaluation 1 Variables Names of variables: Composed of letters, digits, and the underscore ( ) character. (NO spaces;

More information

CS 241 Data Organization Binary

CS 241 Data Organization Binary CS 241 Data Organization Binary Brooke Chenoweth University of New Mexico Fall 2017 Combinations and Permutations In English we use the word combination loosely, without thinking if the order of things

More information

Basic C Programming (2) Bin Li Assistant Professor Dept. of Electrical, Computer and Biomedical Engineering University of Rhode Island

Basic C Programming (2) Bin Li Assistant Professor Dept. of Electrical, Computer and Biomedical Engineering University of Rhode Island Basic C Programming (2) Bin Li Assistant Professor Dept. of Electrical, Computer and Biomedical Engineering University of Rhode Island Data Types Basic Types Enumerated types The type void Derived types

More information

Basic operators, Arithmetic, Relational, Bitwise, Logical, Assignment, Conditional operators. JAVA Standard Edition

Basic operators, Arithmetic, Relational, Bitwise, Logical, Assignment, Conditional operators. JAVA Standard Edition Basic operators, Arithmetic, Relational, Bitwise, Logical, Assignment, Conditional operators JAVA Standard Edition Java - Basic Operators Java provides a rich set of operators to manipulate variables.

More information

VLSM and CIDR. Routing Protocols and Concepts Chapter 6. Version Cisco Systems, Inc. All rights reserved. Cisco Public 1

VLSM and CIDR. Routing Protocols and Concepts Chapter 6. Version Cisco Systems, Inc. All rights reserved. Cisco Public 1 VLSM and CIDR Routing Protocols and Concepts Chapter 6 Version 4.0 1 Objectives Compare and contrast classful and classless IP addressing. Review VLSM and explain the benefits of classless IP addressing.

More information

TCP/IP. Model and Layers Bits and Number Bases IPv4 Addressing Subnetting Classless Interdomain Routing IPv6

TCP/IP. Model and Layers Bits and Number Bases IPv4 Addressing Subnetting Classless Interdomain Routing IPv6 TCP/IP Model and Layers Bits and Number Bases IPv4 Addressing Subnetting Classless Interdomain Routing IPv6 At the beginning of the course, we discussed two primary conceptual models of networking: OSI

More information

ME 461 C review Session Fall 2009 S. Keres

ME 461 C review Session Fall 2009 S. Keres ME 461 C review Session Fall 2009 S. Keres DISCLAIMER: These notes are in no way intended to be a complete reference for the C programming material you will need for the class. They are intended to help

More information

GO - OPERATORS. This tutorial will explain the arithmetic, relational, logical, bitwise, assignment and other operators one by one.

GO - OPERATORS. This tutorial will explain the arithmetic, relational, logical, bitwise, assignment and other operators one by one. http://www.tutorialspoint.com/go/go_operators.htm GO - OPERATORS Copyright tutorialspoint.com An operator is a symbol that tells the compiler to perform specific mathematical or logical manipulations.

More information

6.6 Subnetting and Variable Length Subnet Masks (VLSMs)

6.6 Subnetting and Variable Length Subnet Masks (VLSMs) 6.6 Subnetting and Variable Length Subnet Masks (VLSMs) The subnetting is a process of dividing a single network into subnets as known from previous sections. There are many reasons behind that: 1. Reduced

More information

CCE1030 Computer Networking

CCE1030 Computer Networking CCE1030 Computer Networking Lecture 19 Subnetting CIDR / VLSM Usama Arusi January 2018 CCE1030 Usama Arusi 1 Lecture Content Introduction Classful IP Addressing Classful Addressing Structure Classless

More information

Lab Using the Windows Calculator with Network Addresses

Lab Using the Windows Calculator with Network Addresses Objectives Part 1: Access the Windows Calculator Part 2: Convert between Numbering Systems Part 3: Convert Host IPv4 Addresses and Subnet Masks into Binary Part 4: Determine the Number of Hosts in a Network

More information

CENG393 Computer Networks Labwork 2

CENG393 Computer Networks Labwork 2 CENG393 Computer Networks Labwork 2 As of 2017, every device (computers, mobile phones, IoT 1 devices, etc) has to obtain an IP address in order to connect to a network. There are two IP specifications

More information

Operators and Expressions in C & C++ Mahesh Jangid Assistant Professor Manipal University, Jaipur

Operators and Expressions in C & C++ Mahesh Jangid Assistant Professor Manipal University, Jaipur Operators and Expressions in C & C++ Mahesh Jangid Assistant Professor Manipal University, Jaipur Operators and Expressions 8/24/2012 Dept of CS&E 2 Arithmetic operators Relational operators Logical operators

More information

Beginning C Programming for Engineers

Beginning C Programming for Engineers Beginning Programming for Engineers R. Lindsay Todd Lecture 6: Bit Operations R. Lindsay Todd () Beginning Programming for Engineers Beg 6 1 / 32 Outline Outline 1 Place Value Octal Hexadecimal Binary

More information

And Parallelism. Parallelism in Prolog. OR Parallelism

And Parallelism. Parallelism in Prolog. OR Parallelism Parallelism in Prolog And Parallelism One reason that Prolog is of interest to computer scientists is that its search mechanism lends itself to parallel evaluation. In fact, it supports two different kinds

More information

For personnal use only

For personnal use only Using Types To Create Object Orientated Korn Shell 93 Scripts Finnbarr P. Murphy (fpm@fpmurphy.com Most experienced software developers are familiar with the fact the Python, Perl, Ruby, JavaScript and

More information

Operations On Data CHAPTER 4. (Solutions to Odd-Numbered Problems) Review Questions

Operations On Data CHAPTER 4. (Solutions to Odd-Numbered Problems) Review Questions CHAPTER 4 Operations On Data (Solutions to Odd-Numbered Problems) Review Questions 1. Arithmetic operations interpret bit patterns as numbers. Logical operations interpret each bit as a logical values

More information

Shell programming. Introduction to Operating Systems

Shell programming. Introduction to Operating Systems Shell programming Introduction to Operating Systems Environment variables Predened variables $* all parameters $# number of parameters $? result of last command $$ process identier $i parameter number

More information

CSE 351: The Hardware/Software Interface. Section 2 Integer representations, two s complement, and bitwise operators

CSE 351: The Hardware/Software Interface. Section 2 Integer representations, two s complement, and bitwise operators CSE 351: The Hardware/Software Interface Section 2 Integer representations, two s complement, and bitwise operators Integer representations In addition to decimal notation, it s important to be able to

More information

BITWISE OPERATORS. There are a number of ways to manipulate binary values. Just as you can with

BITWISE OPERATORS. There are a number of ways to manipulate binary values. Just as you can with BITWISE OPERATORS There are a number of ways to manipulate binary values. Just as you can with decimal numbers, you can perform standard mathematical operations - addition, subtraction, multiplication,

More information

CS & IT Conversions. Magnitude 10,000 1,

CS & IT Conversions. Magnitude 10,000 1, CS & IT Conversions There are several number systems that you will use when working with computers. These include decimal, binary, octal, and hexadecimal. Knowing how to convert between these number systems

More information

IP Addressing. Introductory material. An entire module devoted to IP addresses. Pedro Brandão (PhD) University of Évora

IP Addressing. Introductory material. An entire module devoted to IP addresses. Pedro Brandão (PhD) University of Évora IP Addressing Introductory material. An entire module devoted to IP addresses. Pedro Brandão (PhD) University of Évora IP Addresses Structure of an IP address Subnetting CIDR IP Version 6 addresses IP

More information

Expression and Operator

Expression and Operator Expression and Operator Examples: Two types: Expressions and Operators 3 + 5; x; x=0; x=x+1; printf("%d",x); Function calls The expressions formed by data and operators An expression in C usually has a

More information

Lecture 13 Bit Operations

Lecture 13 Bit Operations Lecture 13 Bit Operations C is a powerful language as it provides the programmer with many operations for bit manipulation. Data can be accessed at the bit level to make operations more efficient. As you

More information

bash Execution Control COMP2101 Winter 2019

bash Execution Control COMP2101 Winter 2019 bash Execution Control COMP2101 Winter 2019 Bash Execution Control Scripts commonly can evaluate situations and make simple decisions about actions to take Simple evaluations and actions can be accomplished

More information

Objectives. Note: An IP address is a 32-bit address. The IP addresses are unique. The address space of IPv4 is 2 32 or 4,294,967,296.

Objectives. Note: An IP address is a 32-bit address. The IP addresses are unique. The address space of IPv4 is 2 32 or 4,294,967,296. Chapter 4 Objectives Upon completion you will be able to: Understand IPv4 addresses and classes Identify the class of an IP address Find the network address given an IP address Understand masks and how

More information

Chapter 12 Variables and Operators

Chapter 12 Variables and Operators Chapter 12 Variables and Operators Basic C Elements Variables Named, typed data items Operators Predefined actions performed on data items Combined with variables to form expressions, statements Statements

More information

Fundamentals of Programming

Fundamentals of Programming Fundamentals of Programming Lecture 3 - Constants, Variables, Data Types, And Operations Lecturer : Ebrahim Jahandar Borrowed from lecturer notes by Omid Jafarinezhad Outline C Program Data types Variables

More information

Positional notation Ch Conversions between Decimal and Binary. /continued. Binary to Decimal

Positional notation Ch Conversions between Decimal and Binary. /continued. Binary to Decimal Positional notation Ch.. /continued Conversions between Decimal and Binary Binary to Decimal - use the definition of a number in a positional number system with base - evaluate the definition formula using

More information

Programming. Elementary Concepts

Programming. Elementary Concepts Programming Elementary Concepts Summary } C Language Basic Concepts } Comments, Preprocessor, Main } Key Definitions } Datatypes } Variables } Constants } Operators } Conditional expressions } Type conversions

More information

CS107, Lecture 3 Bits and Bytes; Bitwise Operators

CS107, Lecture 3 Bits and Bytes; Bitwise Operators CS107, Lecture 3 Bits and Bytes; Bitwise Operators reading: Bryant & O Hallaron, Ch. 2.1 This document is copyright (C) Stanford Computer Science and Nick Troccoli, licensed under Creative Commons Attribution

More information

Prepared by: Shraddha Modi

Prepared by: Shraddha Modi Prepared by: Shraddha Modi Introduction Operator: An operator is a symbol that tells the Computer to perform certain mathematical or logical manipulations. Expression: An expression is a sequence of operands

More information

Operators. Java operators are classified into three categories:

Operators. Java operators are classified into three categories: Operators Operators are symbols that perform arithmetic and logical operations on operands and provide a meaningful result. Operands are data values (variables or constants) which are involved in operations.

More information

Will introduce various operators supported by C language Identify supported operations Present some of terms characterizing operators

Will introduce various operators supported by C language Identify supported operations Present some of terms characterizing operators Operators Overview Will introduce various operators supported by C language Identify supported operations Present some of terms characterizing operators Operands and Operators Mathematical or logical relationships

More information

JAVA OPERATORS GENERAL

JAVA OPERATORS GENERAL JAVA OPERATORS GENERAL Java provides a rich set of operators to manipulate variables. We can divide all the Java operators into the following groups: Arithmetic Operators Relational Operators Bitwise Operators

More information

Looping Commands and Working with user Inputs CHAPTER 4

Looping Commands and Working with user Inputs CHAPTER 4 Looping Commands and Working with user Inputs CHAPTER 4 The For Command for command allows you to create a loop that iterates through a series of values. Loops are used to execute set of command for multiple

More information

28-Nov CSCI 2132 Software Development Lecture 33: Shell Scripting. 26 Shell Scripting. Faculty of Computer Science, Dalhousie University

28-Nov CSCI 2132 Software Development Lecture 33: Shell Scripting. 26 Shell Scripting. Faculty of Computer Science, Dalhousie University Lecture 33 p.1 Faculty of Computer Science, Dalhousie University CSCI 2132 Software Development Lecture 33: Shell Scripting 28-Nov-2018 Location: Chemistry 125 Time: 12:35 13:25 Instructor: Vla Keselj

More information

Review Topics. Midterm Exam Review Slides

Review Topics. Midterm Exam Review Slides Review Topics Midterm Exam Review Slides Original slides from Gregory Byrd, North Carolina State University Modified slides by Chris Wilcox, Colorado State University!! Computer Arithmetic!! Combinational

More information

Introduction. Following are the types of operators: Unary requires a single operand Binary requires two operands Ternary requires three operands

Introduction. Following are the types of operators: Unary requires a single operand Binary requires two operands Ternary requires three operands Introduction Operators are the symbols which operates on value or a variable. It tells the compiler to perform certain mathematical or logical manipulations. Can be of following categories: Unary requires

More information

LCSL Reference Manual

LCSL Reference Manual LCSL Reference Manual Sachin Nene, Chaue Shen, Bogdan Caprita, Julian Maller 1.1 Lexical Conventions 1.1.1 Comments Comments begin with (* and end with *) 1.1.2 Variables Variables consist solely of alphanumeric

More information

CS107, Lecture 3 Bits and Bytes; Bitwise Operators

CS107, Lecture 3 Bits and Bytes; Bitwise Operators CS107, Lecture 3 Bits and Bytes; Bitwise Operators reading: Bryant & O Hallaron, Ch. 2.1 This document is copyright (C) Stanford Computer Science and Nick Troccoli, licensed under Creative Commons Attribution

More information

UNIVERSITY OF LIMERICK OLLSCOIL LUIMNIGH COLLEGE OF INFORMATICS & ELECTRONICS DEPARTMENT OF ELECTRONIC & COMPUTER ENGINEERING

UNIVERSITY OF LIMERICK OLLSCOIL LUIMNIGH COLLEGE OF INFORMATICS & ELECTRONICS DEPARTMENT OF ELECTRONIC & COMPUTER ENGINEERING UNIVERSITY OF LIMERICK OLLSCOIL LUIMNIGH COLLEGE OF INFORMATICS & ELECTRONICS DEPARTMENT OF ELECTRONIC & COMPUTER ENGINEERING MODULE CODE: MODULE TITLE: ET4131 Introduction to Computer Programming SEMESTER:

More information

Shell script. Shell Scripts. A shell script contains a sequence of commands in a text file. Shell is an command language interpreter.

Shell script. Shell Scripts. A shell script contains a sequence of commands in a text file. Shell is an command language interpreter. Shell Scripts A shell script contains a sequence of commands in a text file. Shell is an command language interpreter. Shell executes commands read from a file. Shell is a powerful programming available

More information

Course Outline Introduction to C-Programming

Course Outline Introduction to C-Programming ECE3411 Fall 2015 Lecture 1a. Course Outline Introduction to C-Programming Marten van Dijk, Syed Kamran Haider Department of Electrical & Computer Engineering University of Connecticut Email: {vandijk,

More information

There are four numeric types: 1. Integers, represented as a 32 bit (or longer) quantity. Digits sequences (possibly) signed are integer literals:

There are four numeric types: 1. Integers, represented as a 32 bit (or longer) quantity. Digits sequences (possibly) signed are integer literals: Numeric Types There are four numeric types: 1. Integers, represented as a 32 bit (or longer) quantity. Digits sequences (possibly) signed are integer literals: 1-123 +456 2. Long integers, of unlimited

More information

Chapter 12 Variables and Operators

Chapter 12 Variables and Operators Chapter 12 Variables and Operators Highlights (1) r. height width operator area = 3.14 * r *r + width * height literal/constant variable expression (assignment) statement 12-2 Highlights (2) r. height

More information

Digital Fundamentals. CHAPTER 2 Number Systems, Operations, and Codes

Digital Fundamentals. CHAPTER 2 Number Systems, Operations, and Codes Digital Fundamentals CHAPTER 2 Number Systems, Operations, and Codes Decimal Numbers The decimal number system has ten digits: 0, 1, 2, 3, 4, 5, 6, 7, 8, and 9 The decimal numbering system has a base of

More information

Linux Shell Scripting. Linux System Administration COMP2018 Summer 2017

Linux Shell Scripting. Linux System Administration COMP2018 Summer 2017 Linux Shell Scripting Linux System Administration COMP2018 Summer 2017 What is Scripting? Commands can be given to a computer by entering them into a command interpreter program, commonly called a shell

More information

Title:[ Variables Comparison Operators If Else Statements ]

Title:[ Variables Comparison Operators If Else Statements ] [Color Codes] Environmental Variables: PATH What is path? PATH=$PATH:/MyFolder/YourStuff?Scripts ENV HOME PWD SHELL PS1 EDITOR Showing default text editor #!/bin/bash a=375 hello=$a #No space permitted

More information

Dept. of CSE, IIT KGP

Dept. of CSE, IIT KGP Control Flow: Looping CS10001: Programming & Data Structures Pallab Dasgupta Professor, Dept. of Computer Sc. & Engg., Indian Institute of Technology Kharagpur Types of Repeated Execution Loop: Group of

More information

Number Systems and Binary Arithmetic. Quantitative Analysis II Professor Bob Orr

Number Systems and Binary Arithmetic. Quantitative Analysis II Professor Bob Orr Number Systems and Binary Arithmetic Quantitative Analysis II Professor Bob Orr Introduction to Numbering Systems We are all familiar with the decimal number system (Base 10). Some other number systems

More information

Appendix. Bit Operators

Appendix. Bit Operators Appendix C Bit Operations C++ operates with data entities, such as character, integer, and double-precision constants and variables, that can be stored as 1 or more bytes. In addition, C++ provides for

More information

Programming I Lecture 7

Programming I Lecture 7 . Definition: An integer is a number without a fractional part. The set of integers is the union of the set of whole numbers and the set of negative counting numbers... Integers and whole numbers. C++

More information

Chapter 12 Variables and Operators

Chapter 12 Variables and Operators Basic C Elements Chapter 12 Variables and Operators Original slides from Gregory Byrd, North Carolina State University! Variables named, typed data items! Operators predefined actions performed on data

More information

C - Basics, Bitwise Operator. Zhaoguo Wang

C - Basics, Bitwise Operator. Zhaoguo Wang C - Basics, Bitwise Operator Zhaoguo Wang Java is the best language!!! NO! C is the best!!!! Languages C Java Python 1972 1995 2000 (2.0) Procedure Object oriented Procedure & object oriented Compiled

More information

Configuring IPv4 Addresses

Configuring IPv4 Addresses This chapter contains information about, and instructions for configuring IPv4 addresses on interfaces that are part of a networking device. Note All further references to IPv4 addresses in this document

More information

Midterm Exam Review Slides

Midterm Exam Review Slides Midterm Exam Review Slides Original slides from Gregory Byrd, North Carolina State University Modified slides by Chris Wilcox, Colorado State University Review Topics Number Representation Base Conversion

More information

CSCI 2212: Intermediate Programming / C Chapter 15

CSCI 2212: Intermediate Programming / C Chapter 15 ... /34 CSCI 222: Intermediate Programming / C Chapter 5 Alice E. Fischer October 9 and 2, 25 ... 2/34 Outline Integer Representations Binary Integers Integer Types Bit Operations Applying Bit Operations

More information

CSCI 211 UNIX Lab. Shell Programming. Dr. Jiang Li. Jiang Li, Ph.D. Department of Computer Science

CSCI 211 UNIX Lab. Shell Programming. Dr. Jiang Li. Jiang Li, Ph.D. Department of Computer Science CSCI 211 UNIX Lab Shell Programming Dr. Jiang Li Why Shell Scripting Saves a lot of typing A shell script can run many commands at once A shell script can repeatedly run commands Help avoid mistakes Once

More information

Chapter 4 Reading Organizer

Chapter 4 Reading Organizer Name Date Chapter 4 Reading Organizer After completion of this chapter, you should be able to: 4.1 Analyze the features and benefits of a hierarchical IP addressing structure. Plan and implement a VLSM

More information

CS2630: Computer Organization Homework 1 Bits, bytes, and memory organization Due January 25, 2017, 11:59pm

CS2630: Computer Organization Homework 1 Bits, bytes, and memory organization Due January 25, 2017, 11:59pm CS2630: Computer Organization Homework 1 Bits, bytes, and memory organization Due January 25, 2017, 11:59pm Instructions: Show your work. Correct answers with no work will not receive full credit. Whether

More information

2.1. Unit 2. Integer Operations (Arithmetic, Overflow, Bitwise Logic, Shifting)

2.1. Unit 2. Integer Operations (Arithmetic, Overflow, Bitwise Logic, Shifting) 2.1 Unit 2 Integer Operations (Arithmetic, Overflow, Bitwise Logic, Shifting) 2.2 Skills & Outcomes You should know and be able to apply the following skills with confidence Perform addition & subtraction

More information

Shell scripting and system variables. HORT Lecture 5 Instructor: Kranthi Varala

Shell scripting and system variables. HORT Lecture 5 Instructor: Kranthi Varala Shell scripting and system variables HORT 59000 Lecture 5 Instructor: Kranthi Varala Text editors Programs built to assist creation and manipulation of text files, typically scripts. nano : easy-to-learn,

More information

Fundamental of Programming (C)

Fundamental of Programming (C) Borrowed from lecturer notes by Omid Jafarinezhad Fundamental of Programming (C) Lecturer: Vahid Khodabakhshi Lecture 3 Constants, Variables, Data Types, And Operations Department of Computer Engineering

More information

Networking for the Cloud DBA. Arup Nanda Longtime Oracle DBA And Explorer of New Things

Networking for the Cloud DBA. Arup Nanda Longtime Oracle DBA And Explorer of New Things Networking for the Cloud DBA Arup Nanda Longtime Oracle DBA And Explorer of New Things Most Important Skill for a Cloud DBA 2 Netmask 3 Broadcast Address 4 Network ID IP Address 5 Most Important Skill

More information

Number Systems Standard positional representation of numbers: An unsigned number with whole and fraction portions is represented as:

Number Systems Standard positional representation of numbers: An unsigned number with whole and fraction portions is represented as: N Number Systems Standard positional representation of numbers: An unsigned number with whole and fraction portions is represented as: a n a a a The value of this number is given by: = a n Ka a a a a a

More information

Time: 8:30-10:00 pm (Arrive at 8:15 pm) Location What to bring:

Time: 8:30-10:00 pm (Arrive at 8:15 pm) Location What to bring: ECE 120 Midterm 1 HKN Review Session Time: 8:30-10:00 pm (Arrive at 8:15 pm) Location: Your Room on Compass What to bring: icard, pens/pencils, Cheat sheet (Handwritten) Overview of Review Binary IEEE

More information

Extended Introduction to Computer Science CS1001.py. Lecture 5 Part A: Integer Representation (in Binary and other bases)

Extended Introduction to Computer Science CS1001.py. Lecture 5 Part A: Integer Representation (in Binary and other bases) Extended Introduction to Computer Science CS1001.py Lecture 5 Part A: Integer Representation (in Binary and other bases) Instructors: Daniel Deutch, Amir Rubinstein Teaching Assistants: Michal Kleinbort,

More information

UNIT- 3 Introduction to C++

UNIT- 3 Introduction to C++ UNIT- 3 Introduction to C++ C++ Character Sets: Letters A-Z, a-z Digits 0-9 Special Symbols Space + - * / ^ \ ( ) [ ] =!= . $, ; : %! &? _ # = @ White Spaces Blank spaces, horizontal tab, carriage

More information

N.B. These pastpapers may rely on the knowledge gained from the previous chapters.

N.B. These pastpapers may rely on the knowledge gained from the previous chapters. N.B. These pastpapers may rely on the knowledge gained from the previous chapters. 1 SEC 95-PAPER 1-Q5 (a) A computer uses 8-bit two s complement numbers. In the space below fill in the largest positive

More information

Computer Organization & Systems Exam I Example Questions

Computer Organization & Systems Exam I Example Questions Computer Organization & Systems Exam I Example Questions 1. Pointer Question. Write a function char *circle(char *str) that receives a character pointer (which points to an array that is in standard C

More information

Chapter Motivation For Internetworking

Chapter Motivation For Internetworking Chapter 17-20 Internetworking Part 1 (Concept, IP Addressing, IP Routing, IP Datagrams, Address Resolution 1 Motivation For Internetworking LANs Low cost Limited distance WANs High cost Unlimited distance

More information

IP Addressing and Subnetting NETWORK INFRASTRUCTURES NETKIT - LECTURE 2 MANUEL CAMPO, MARCO SPAZIANI

IP Addressing and Subnetting NETWORK INFRASTRUCTURES NETKIT - LECTURE 2 MANUEL CAMPO, MARCO SPAZIANI IP Addressing and Subnetting NETWORK INFRASTRUCTURES NETKIT - LECTURE 2 MANUEL CAMPO, MARCO SPAZIANI TCP/IP Model TCP/IP does not use all of the OSI layers, though the layers are equivalent in operation

More information

UNIX Shell Programming

UNIX Shell Programming $!... 5:13 $$ and $!... 5:13.profile File... 7:4 /etc/bashrc... 10:13 /etc/profile... 10:12 /etc/profile File... 7:5 ~/.bash_login... 10:15 ~/.bash_logout... 10:18 ~/.bash_profile... 10:14 ~/.bashrc...

More information

Bash scripting Tutorial. Hello World Bash Shell Script. Super User Programming & Scripting 22 March 2013

Bash scripting Tutorial. Hello World Bash Shell Script. Super User Programming & Scripting 22 March 2013 Bash scripting Tutorial Super User Programming & Scripting 22 March 2013 Hello World Bash Shell Script First you need to find out where is your bash interpreter located. Enter the following into your command

More information

These are reserved words of the C language. For example int, float, if, else, for, while etc.

These are reserved words of the C language. For example int, float, if, else, for, while etc. Tokens in C Keywords These are reserved words of the C language. For example int, float, if, else, for, while etc. Identifiers An Identifier is a sequence of letters and digits, but must start with a letter.

More information

CS401 - Computer Architecture and Assembly Language Programming Glossary By

CS401 - Computer Architecture and Assembly Language Programming Glossary By CS401 - Computer Architecture and Assembly Language Programming Glossary By absolute address : A virtual (not physical) address within the process address space that is computed as an absolute number.

More information

Microprocessors & Assembly Language Lab 1 (Introduction to 8086 Programming)

Microprocessors & Assembly Language Lab 1 (Introduction to 8086 Programming) Microprocessors & Assembly Language Lab 1 (Introduction to 8086 Programming) Learning any imperative programming language involves mastering a number of common concepts: Variables: declaration/definition

More information

Lecture #10 - Interactive Korn Shell (Chapter 11)

Lecture #10 - Interactive Korn Shell (Chapter 11) CS390 UNIX Programming Spring 2009 Page 1 Lecture #10 - Interactive Korn Shell (Chapter 11) Background Usually ksh Programming interface is a superset of Bourne shell Adopted many of the features from

More information

Introduction to TCP/IP

Introduction to TCP/IP Introduction to TCP/IP Properties and characteristics of TCP/IP IPv4 IPv6 Public vs private vs APIPA/link local Static vs dynamic Client-side DNS settings Client-side DHCP Subnet mask vs CIDR Gateway TCP/IP

More information

CS 25200: Systems Programming. Lecture 10: Shell Scripting in Bash

CS 25200: Systems Programming. Lecture 10: Shell Scripting in Bash CS 25200: Systems Programming Lecture 10: Shell Scripting in Bash Dr. Jef Turkstra 2018 Dr. Jeffrey A. Turkstra 1 Lecture 10 Getting started with Bash Data types Reading and writing Control loops Decision

More information

Arithmetic Operators. Portability: Printing Numbers

Arithmetic Operators. Portability: Printing Numbers Arithmetic Operators Normal binary arithmetic operators: + - * / Modulus or remainder operator: % x%y is the remainder when x is divided by y well defined only when x > 0 and y > 0 Unary operators: - +

More information

Variables and literals

Variables and literals Demo lecture slides Although I will not usually give slides for demo lectures, the first two demo lectures involve practice with things which you should really know from G51PRG Since I covered much of

More information

Brief Notes on Networks

Brief Notes on Networks IP ADDRESS "IP" stands for Internet Protocol, so an IP address is an Internet Protocol address. What does that mean? An Internet Protocol is a set of rules that govern Internet activity and facilitate

More information

PHPoC vs PHP > Overview. Overview

PHPoC vs PHP > Overview. Overview PHPoC vs PHP > Overview Overview PHPoC is a programming language that Sollae Systems has developed. All of our PHPoC products have PHPoC interpreter in firmware. PHPoC is based on a wide use script language

More information

Bits and Bytes. Bit Operators in C/C++

Bits and Bytes. Bit Operators in C/C++ Bits and Bytes The byte is generally the smallest item of storage that is directly accessible in modern computers, and symbiotically the byte is the smallest item of storage used by modern programming

More information

Computer System and programming in C

Computer System and programming in C 1 Basic Data Types Integral Types Integers are stored in various sizes. They can be signed or unsigned. Example Suppose an integer is represented by a byte (8 bits). Leftmost bit is sign bit. If the sign

More information

CS313D: ADVANCED PROGRAMMING LANGUAGE

CS313D: ADVANCED PROGRAMMING LANGUAGE CS313D: ADVANCED PROGRAMMING LANGUAGE Computer Science department Lecture 2 : C# Language Basics Lecture Contents 2 The C# language First program Variables and constants Input/output Expressions and casting

More information

CS 261 Fall Binary Information (convert to hex) Mike Lam, Professor

CS 261 Fall Binary Information (convert to hex) Mike Lam, Professor CS 261 Fall 2018 Mike Lam, Professor 3735928559 (convert to hex) Binary Information Binary information Topics Base conversions (bin/dec/hex) Data sizes Byte ordering Character and program encodings Bitwise

More information

Bash scripting basics

Bash scripting basics Bash scripting basics prepared by Anatoliy Antonov for ESSReS community September 2012 1 Outline Definitions Foundations Flow control References and exercises 2 Definitions 3 Definitions Script - [small]

More information