タグ

2020年5月21日のブックマーク (3件)

  • Binary-coded decimals and PLCs | Control Engineering

    urza358
    urza358 2020/05/21
  • Python 3 の bytes 型は数値の配列 - 銀月の符号

    自作のおもちゃライブラリを 2to3.py して Python 3 で動かしてみたが、うまくいかなかったものがあった。ちょっと調べていくと原因が見つかったのでメモ。 bytes にインデックスアクセスしたりイテレータを要求する箇所で用いたりすると int が返る。 Python 2 の chr は chr を返していたので明らかに異なる。 >>> b'abc'[0] 97 >>> iter(b'abc') <bytes_iterator object at 0x00B9E110> >>> next(_) 97 >>> for i in b'abc': ... print(i) ... 97 98 99 >>> list(b'abc') [97, 98, 99] >>> print(*b'abc') 97 98 99 bytes 型には数値の配列という要素が Python 2 の str よ

    Python 3 の bytes 型は数値の配列 - 銀月の符号
  • python3ならintとbytesの変換が楽勝になる - BlankTar

    バイト列を整数にする、あるいは整数をバイト列にする。 通信とか暗号とか扱ってると頻繁にやらないといけないわけですが、Pythonだと意外と面倒なんですよね、これが。 C言語ならキャストしちゃえば一発なんだけどねー。 ……なんて思っていました。ついさっきまで。 せめて楽な方法が無いかと探していたら、公式ドキュメントの「組み込み型」のページに「整数を表すバイト列を返します。」なんて記述を発見。 なんと標準でそんな機能が入っていたようです。 なお、このメソッドはPython3.2以降でしか使えません。レガシー環境では注意してください。 使い方は以下のような感じになります。 bytesからintにする >> a = 128 >>> a.to_bytes(2, 'big') # ビッグエンディアン(1の位が最後尾の1バイトに入る)形式で、2バイトのbytesにする b'\x00\x80' >>> a

    python3ならintとbytesの変換が楽勝になる - BlankTar