<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, May 17, 2018 at 11:07 PM, Greg Ewing <span dir="ltr"><<a href="mailto:greg.ewing@canterbury.ac.nz" target="_blank">greg.ewing@canterbury.ac.nz</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Steven D'Aprano wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
But XORing bytes seems perfectly reasonable. Bytes are numbers, even if we display them as ASCII characters.</blockquote></blockquote><div><br></div><div>actually, bytes are, well, bytes ;-) -- that is, 8 bits. But the point is that "bitwise" operations make all the sense in the world for bytes, but not for unicode text -- did anyone have a use case for bitwise operation on unicode strings? I can't imagine one, even if you could agree on a definition...</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Yep. Implement it for bytes, </blockquote><div><br></div><div>What exactly would be implemented? </div></div><div class="gmail_extra"><br></div><div class="gmail_extra">bytes is a sequence type, so would a bitwise operator perform the operation "elementwise"? (i.e. like numpy)</div><div class="gmail_extra"><br></div><div class="gmail_extra">or would it operate on the whole sequence as a single collection of bits?</div><div class="gmail_extra"><br></div><div class="gmail_extra">Would it be any different? Without thinking hard, it seems some operations, like AND and OR and XOR would be the same, but bit shifting would be different.</div><div class="gmail_extra"><br></div><div class="gmail_extra">And then what do you do if the two bytes objects are not the same length?</div><div class="gmail_extra"><br></div><div class="gmail_extra">If "elementwise", then we should think carefully about that -- no where else does Python do things elementwise in the standard library -- and we already have numpy if you want to do it now.</div><div class="gmail_extra"><br></div><div class="gmail_extra">and a bytes object can be representing any type of data -- so one byte at a time might make sense, but maybe two bytes at a time makes more sense -- and if the data is representing, say an integer, then endian-ness matters...</div><div class="gmail_extra"><br></div><div class="gmail_extra">All this is handled by numpy by having multiple data types that can be "mapped" to a buffer.</div><div class="gmail_extra"><br></div><div class="gmail_extra">-CHB</div><div class="gmail_extra"><br></div><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><br>Christopher Barker, Ph.D.<br>Oceanographer<br><br>Emergency Response Division<br>NOAA/NOS/OR&R            (206) 526-6959   voice<br>7600 Sand Point Way NE   (206) 526-6329   fax<br>Seattle, WA  98115       (206) 526-6317   main reception<br><br><a href="mailto:Chris.Barker@noaa.gov" target="_blank">Chris.Barker@noaa.gov</a></div>
</div></div>