But what is the purpose of ANDing with 255?
Would this not just return the same value? eg 1010 and with 11111111 would just return 00001010 or 1010 ---------------------------------------- > From: dux...@hotmail.com > To: tutor@python.org > Date: Thu, 1 May 2014 09:53:15 +0000 > Subject: Re: [Tutor] bit shifting > > Ok I am getting somewhere with this now. > > > A bitshift followed by ANDing the result of the shift! > > > So I think n>> 24 & 0xFF > > > is > > > shift n 3 bytes right, save results in n and then AND n with 255 decimal? > > ---------------------------------------- >> From: dux...@hotmail.com >> To: tutor@python.org >> Date: Thu, 1 May 2014 08:08:17 +0000 >> Subject: [Tutor] bit shifting >> >> I am trying to follow some code. It is basically a python scratch >> interfacing script. >> >> >> >> Anyway part of the script has this code. >> >> >> >> Searching google for>> greater than signs in code with python has its issues. >> >> >> >> Can anyone clarify this stuff. >> >> >> >> I know its about 4 bytes of data. It looks like its setting all bits HIGH to >> me? >> >> >> >> n = len(cmd) >> a = array('c') >> a.append(chr((n>> 24) & 0xFF)) >> a.append(chr((n>> 16) & 0xFF)) >> a.append(chr((n>> 8) & 0xFF)) >> a.append(chr(n & 0xFF)) >> >> >> >> >> >> More code for context for python version 2.7: >> >> >> >> from array import array >> import socket >> import time >> import sys >> >> from Tkinter import Tk >> from tkSimpleDialog import askstring >> root = Tk() >> root.withdraw() >> >> PORT = 42001 >> HOST = askstring('Scratch Connector', 'IP:') >> if not HOST: >> sys.exit() >> >> print("Connecting...") >> scratchSock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) >> scratchSock.connect((HOST, PORT)) >> print("Connected!") >> >> def sendScratchCommand(cmd): >> n = len(cmd) >> a = array('c') >> a.append(chr((n>> 24) & 0xFF)) >> a.append(chr((n>> 16) & 0xFF)) >> a.append(chr((n>> 8) & 0xFF)) >> a.append(chr(n & 0xFF)) >> scratchSock.send(a.tostring() + cmd) >> >> while True: >> msg = askstring('Scratch Connector', 'Send Broadcast:') >> if msg: >> sendScratchCommand('broadcast "' + msg + '"') >> >> >> >> Another for Python 3: >> >> import socket >> >> HOST = 'localhost' >> PORT = 42001 >> >> s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) >> s.connect((HOST, PORT)) >> >> def sendCMD(cmd): >> n = len(cmd) >> a = [] >> a.append((n>> 24) & 0xFF) >> a.append((n>> 16) & 0xFF) >> a.append((n>> 8) & 0xFF) >> a.append(n & 0xFF) >> b = '' >> for i in list(range(len(a))): >> b += a[i] >> s.send(bytes(b+cmd,'UTF-8')) >> >> sendCMD('broadcast"hello"') >> _______________________________________________ >> Tutor maillist - Tutor@python.org >> To unsubscribe or change subscription options: >> https://mail.python.org/mailman/listinfo/tutor > _______________________________________________ > Tutor maillist - Tutor@python.org > To unsubscribe or change subscription options: > https://mail.python.org/mailman/listinfo/tutor > _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor