{ "metadata": { "name": "", "signature": "sha256:e28261ed5c0b0cf7c10e8c91bd2debc8e99bf24519225a056fc19ed619f1e95d" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "CHAPTER 14: OPERATIONS ON BITS" ] }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "EXAMPLE ON PAGE:449" ] }, { "cell_type": "code", "collapsed": false, "input": [ " \n", "def showbits(x):\n", " return bin(x)[2:].zfill(16)\n", "for j in range(0,6,1):\n", " print \"Decimal %d is same as binary\" % (j)\n", " print showbits(j)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Decimal 0 is same as binary\n", "0000000000000000\n", "Decimal 1 is same as binary\n", "0000000000000001\n", "Decimal 2 is same as binary\n", "0000000000000010\n", "Decimal 3 is same as binary\n", "0000000000000011\n", "Decimal 4 is same as binary\n", "0000000000000100\n", "Decimal 5 is same as binary\n", "0000000000000101\n" ] } ], "prompt_number": 2 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "EXAMPLE ON PAGE:450" ] }, { "cell_type": "code", "collapsed": false, "input": [ " \n", "def showbits(x):\n", " return bin(x)[2:].zfill(16)\n", "for j in range(0,4,1):\n", " print \"Decimal %d is same as binary\" % (j)\n", " print showbits(j)\n", " k=j^65535 #using xor for making one's complement\n", " print \"One's complement of %d is\" % (j)\n", " print showbits(k)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Decimal 0 is same as binary\n", "0000000000000000\n", "One's complement of 0 is\n", "1111111111111111\n", "Decimal 1 is same as binary\n", "0000000000000001\n", "One's complement of 1 is\n", "1111111111111110\n", "Decimal 2 is same as binary\n", "0000000000000010\n", "One's complement of 2 is\n", "1111111111111101\n", "Decimal 3 is same as binary\n", "0000000000000011\n", "One's complement of 3 is\n", "1111111111111100\n" ] } ], "prompt_number": 15 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "EXAMPLE ON PAGE:451" ] }, { "cell_type": "code", "collapsed": false, "input": [ " \n", "import sys\n", "def encrypt():\n", " try:\n", " fs=open('SOURCE.txt','r') #normal file\n", " ft=open('TARGET.txt','w') #encrypted file\n", " except:\n", " print \"File opening error!\"\n", " sys.exit(1)\n", " while True:\n", " ch=fs.read(1)\n", " if not ch:\n", " break\n", " ft.write(bytearray([ord(ch)^0xff]))\n", " fs.close()\n", " ft.close()\n", "encrypt()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 3 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "EXAMPLE ON PAGE:452" ] }, { "cell_type": "code", "collapsed": false, "input": [ " \n", "def showbits(x):\n", " return bin(x)[2:].zfill(16)\n", "i=5225\n", "print \"Decimal %d is same as binary\" % (i)\n", "print showbits(i)\n", "for j in range(0,6,1):\n", " k=i>>j #right shift operator\n", " print \"%d right shift %d gives\" % (i,j)\n", " print showbits(k)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Decimal 5225 is same as binary\n", "0001010001101001\n", "5225 right shift 0 gives\n", "0001010001101001\n", "5225 right shift 1 gives\n", "0000101000110100\n", "5225 right shift 2 gives\n", "0000010100011010\n", "5225 right shift 3 gives\n", "0000001010001101\n", "5225 right shift 4 gives\n", "0000000101000110\n", "5225 right shift 5 gives\n", "0000000010100011\n" ] } ], "prompt_number": 3 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "EXAMPLE ON PAGE:453-454" ] }, { "cell_type": "code", "collapsed": false, "input": [ " \n", "def showbits(x):\n", " return bin(x)[2:].zfill(16)\n", "i=5225\n", "print \"Decimal %d is same as binary\" % (i)\n", "print showbits(i)\n", "for j in range(0,5,1):\n", " mask = 2 ** 16 - 1\n", " k = (i << j) & mask #left shift operator\n", " print \"%d right shift %d gives\" % (i,j)\n", " print showbits(k)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Decimal 5225 is same as binary\n", "0001010001101001\n", "5225 right shift 0 gives\n", "0001010001101001\n", "5225 right shift 1 gives\n", "0010100011010010\n", "5225 right shift 2 gives\n", "0101000110100100\n", "5225 right shift 3 gives\n", "1010001101001000\n", "5225 right shift 4 gives\n", "0100011010010000\n" ] } ], "prompt_number": 4 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "EXAMPLE ON PAGE:457-458" ] }, { "cell_type": "code", "collapsed": false, "input": [ " \n", "d=9\n", "m=3\n", "y=1990\n", "date=(y-1980)*512+m*32+d\n", "print \"Date=%u\\n\" % (date)\n", "year=1980+(date>>9)\n", "month=((date<<7)>>12)\n", "day=((date<<11)>>11)\n", "print \"Year=%u\" % (year)\n", "print \"Month=%u\" % (month)\n", "print \"Day=%u\" % (day)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Date=5225\n", "\n", "Year=1990\n", "Month=163\n", "Day=5225\n" ] } ], "prompt_number": 11 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "EXAMPLE ON PAGE:460" ] }, { "cell_type": "code", "collapsed": false, "input": [ " \n", "i=65\n", "print \"Value of i=%d\\n\" % (i)\n", "j=i&32\n", "if j==0:\n", " print \"and its fifth bit is off\\n\"\n", "else:\n", " print \"and its fifth bit is on\\n\"\n", "j=i&64\n", "if j==0:\n", " print \"whereas its sixth bit is off\\n\"\n", "else:\n", " print \"whereas its sixth bit is on\\n\"" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Value of i=65\n", "\n", "and its fifth bit is off\n", "\n", "whereas its sixth bit is on\n", "\n" ] } ], "prompt_number": 12 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "EXAMPLE ON PAGE:463" ] }, { "cell_type": "code", "collapsed": false, "input": [ " \n", "b=50\n", "b=b^12 #XOR operator\n", "print \"%d\\n\" % (b) #this will print 62\n", "b=b^12\n", "print \"%d\\n\" % (b) #this will print 50" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "62\n", "\n", "50\n", "\n" ] } ], "prompt_number": 13 }, { "cell_type": "heading", "level": 2, "metadata": {}, "source": [ "EXAMPLE ON PAGE:463-464" ] }, { "cell_type": "code", "collapsed": false, "input": [ " \n", "def showbit(n):\n", " for i in range(15,-1,-1):\n", " andmask=1<