summaryrefslogtreecommitdiff
path: root/Applied_Physics_for_Engineers/Chapter_15.ipynb
diff options
context:
space:
mode:
Diffstat (limited to 'Applied_Physics_for_Engineers/Chapter_15.ipynb')
-rwxr-xr-xApplied_Physics_for_Engineers/Chapter_15.ipynb483
1 files changed, 483 insertions, 0 deletions
diff --git a/Applied_Physics_for_Engineers/Chapter_15.ipynb b/Applied_Physics_for_Engineers/Chapter_15.ipynb
new file mode 100755
index 00000000..7405f913
--- /dev/null
+++ b/Applied_Physics_for_Engineers/Chapter_15.ipynb
@@ -0,0 +1,483 @@
+{
+ "metadata": {
+ "name": ""
+ },
+ "nbformat": 3,
+ "nbformat_minor": 0,
+ "worksheets": [
+ {
+ "cells": [
+ {
+ "cell_type": "heading",
+ "level": 1,
+ "metadata": {},
+ "source": [
+ "Chapter 15: Digital Electronics"
+ ]
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.1, Page 771"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "n = 25\n",
+ "\n",
+ "#Calculations\n",
+ "b = bin(n)\n",
+ "\n",
+ "#Result\n",
+ "print \"The binary equivalent of 25 is\",b"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The binary equivalent of 25 is 0b11001\n"
+ ]
+ }
+ ],
+ "prompt_number": 4
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.2, Page 771"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "\n",
+ "def binary_decimal(ni): # Function to convert binary to decimal\n",
+ " deci = 0;\n",
+ " i = 0;\n",
+ " while (ni != 0):\n",
+ " rem = ni-int(ni/10.)*10\n",
+ " ni = int(ni/10.);\n",
+ " deci = deci + rem*2**i;\n",
+ " i = i + 1;\n",
+ " return deci\n",
+ " \n",
+ "\n",
+ "def binfrac_decifrac(nf): # Function to convert binary fraction to decimal fraction\n",
+ " decf = 0;\n",
+ " i = -1;\n",
+ " while (i >= -3):\n",
+ " nf = nf*10;\n",
+ " rem = round(nf); \n",
+ " nf = nf-rem;\n",
+ " decf = decf + rem*2**i;\n",
+ " i = i - 1;\n",
+ " return decf\n",
+ " \n",
+ "\n",
+ "n = 101.101; # Initialize the binary number\n",
+ "n_int = int(n); # Extract the integral part\n",
+ "n_frac = n-n_int; # Extract the fractional part\n",
+ "\n",
+ "#Result\n",
+ "print \"Decimal equivalent of %7.3f = %5.3f\"%(n, binary_decimal(n_int)+binfrac_decifrac(n_frac))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Decimal equivalent of 101.101 = 5.625\n"
+ ]
+ }
+ ],
+ "prompt_number": 33
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.3, Page 772"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "def octal_decimal(n): # Function to convert binary to decimal\n",
+ " dec = 0;\n",
+ " i = 0;\n",
+ " while (n != 0):\n",
+ " rem = n-int(n/10)*10; \n",
+ " n = int(n/10);\n",
+ " dec = dec + rem*8**i;\n",
+ " i = i + 1;\n",
+ " return dec\n",
+ "\n",
+ "n = 173; # Initialize the octal number\n",
+ "\n",
+ "#Result\n",
+ "print \"Decimal equivalent of %d = %d\"%(n, octal_decimal(n)); \n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "Decimal equivalent of 173 = 123\n"
+ ]
+ }
+ ],
+ "prompt_number": 37
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.4, Page 772"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "n = 278\n",
+ "\n",
+ "#Calculations\n",
+ "o = oct(n)\n",
+ "\n",
+ "#Result\n",
+ "print \"The octal equivalent of 278 is\",o"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The octal equivalent of 278 is 0426\n"
+ ]
+ }
+ ],
+ "prompt_number": 17
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.5, Page 772"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "n1 = '10001100'\n",
+ "n2 = '1011010111'\n",
+ "\n",
+ "#Calculations\n",
+ "x1 = hex(int(n1,2))\n",
+ "x2 = hex(int(n2,2))\n",
+ "\n",
+ "#Results\n",
+ "print \"The hexadecimal equivalent of 10001100 is\",x1\n",
+ "print \"The hexadecimal equivalent of 1011010111 is\",x2\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The hexadecimal equivalent of 10001100 is 0x8c\n",
+ "The hexadecimal equivalent of 1011010111 is 0x2d7\n"
+ ]
+ }
+ ],
+ "prompt_number": 21
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.6, Page 772"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "n = 72905\n",
+ "\n",
+ "#Calculations\n",
+ "h = hex(n)\n",
+ "\n",
+ "#Result\n",
+ "print \"The hexadecimal equivalent of 278 is\",h"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The hexadecimal equivalent of 278 is 0x11cc9\n"
+ ]
+ }
+ ],
+ "prompt_number": 23
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.7, Page 773"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "x1 = 0b11101\n",
+ "x2 = 0b10111\n",
+ "\n",
+ "#Calculations\n",
+ "x = bin(x1+x2)\n",
+ "\n",
+ "#Result\n",
+ "print \"The required result is\",x"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The required result is 0b110100\n"
+ ]
+ }
+ ],
+ "prompt_number": 27
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.8, Page 773"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "\n",
+ "def decimal_binary(ni): # Function to convert decimal to binary\n",
+ " bini = 0;\n",
+ " i = 1;\n",
+ " while (ni != 0):\n",
+ " rem = ni-int(ni/2)*2; \n",
+ " ni = int(ni/2);\n",
+ " bini = bini + rem*i;\n",
+ " i = i * 10;\n",
+ " return bini\n",
+ "\n",
+ "def decifrac_binfrac(nf): # Function to convert binary fraction to decimal fraction\n",
+ " binf = 0; i = 0.1;\n",
+ " while (nf != 0):\n",
+ " nf = nf*2;\n",
+ " rem = int(nf); \n",
+ " nf = nf-rem;\n",
+ " binf = binf + rem*i;\n",
+ " i = i/10;\n",
+ " return binf\n",
+ "\n",
+ "def binary_decimal(ni): # Function to convert binary to decimal\n",
+ " deci = 0;\n",
+ " i = 0;\n",
+ " while (ni != 0):\n",
+ " rem = ni-int(ni/10)*10; \n",
+ " ni = int(ni/10);\n",
+ " deci = deci + rem*2.**i;\n",
+ " i = i + 1;\n",
+ " return deci\n",
+ "\n",
+ "def binfrac_decifrac(nf): # Function to convert binary fraction to decimal fraction\n",
+ " decf = 0;\n",
+ " i = -1;\n",
+ " while (i >= -3):\n",
+ " nf = nf*10;\n",
+ " rem = round(nf); \n",
+ " nf = nf-rem;\n",
+ " decf = decf + rem*2.**i;\n",
+ " i = i - 1;\n",
+ " return decf \n",
+ "\n",
+ "bin1 = 1011.11; # Initialize the first binary binber\n",
+ "bin2 = 1011.01; # Initialize the second binary binber\n",
+ "bin1_int = int(bin1); # Extract the integral part for first\n",
+ "bin1_frac = bin1-bin1_int; # Extract the fractional part for second\n",
+ "bin2_int = int(bin2); # Extract the integral part for first\n",
+ "bin2_frac = bin2-bin2_int; # Extract the fractional part for second\n",
+ "dec1 = binary_decimal(bin1_int)+binfrac_decifrac(bin1_frac);\n",
+ "dec2 = binary_decimal(bin2_int)+binfrac_decifrac(bin2_frac);\n",
+ "dec = dec1+dec2;\n",
+ "dec_int = int(dec);\n",
+ "dec_frac = dec-dec_int;\n",
+ "\n",
+ "#Result\n",
+ "print \"%7.2f + %7.2f = %8.2f\"%(bin1, bin2, decimal_binary(dec_int)+decifrac_binfrac(dec_frac))\n"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "1011.11 + 1011.01 = 10111.00\n"
+ ]
+ }
+ ],
+ "prompt_number": 49
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.9, Page 773"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "x1 = 0b0111\n",
+ "x2 = 0b1001\n",
+ "\n",
+ "#Calculations\n",
+ "x = bin(x1-x2)\n",
+ "\n",
+ "#Result\n",
+ "print \"The required result is\",x"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The required result is -0b10\n"
+ ]
+ }
+ ],
+ "prompt_number": 30
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.10, Page 773"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "x1 = 0b1101\n",
+ "x2 = 0b1100\n",
+ "\n",
+ "#Calculations\n",
+ "x = bin(x1*x2)\n",
+ "\n",
+ "#Result\n",
+ "print \"The required result is\",x\n",
+ "#Incorrect solution in textbook"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The required result is 0b10011100\n"
+ ]
+ }
+ ],
+ "prompt_number": 31
+ },
+ {
+ "cell_type": "heading",
+ "level": 2,
+ "metadata": {},
+ "source": [
+ "Example 15.11, Page 774"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "collapsed": false,
+ "input": [
+ "#Variable declaration\n",
+ "x1 = 0b11001\n",
+ "x2 = 0b101\n",
+ "\n",
+ "#Calculations\n",
+ "x = bin(x1/x2)\n",
+ "\n",
+ "#Result\n",
+ "print \"The required result is\",x"
+ ],
+ "language": "python",
+ "metadata": {},
+ "outputs": [
+ {
+ "output_type": "stream",
+ "stream": "stdout",
+ "text": [
+ "The required result is 0b101\n"
+ ]
+ }
+ ],
+ "prompt_number": 32
+ }
+ ],
+ "metadata": {}
+ }
+ ]
+} \ No newline at end of file