1
0

More than 3 years have passed since last update.

半導体デザイナ向け電卓スクリプトの紹介

Last updated at Posted at 2020-07-24

はじめに

みなさん、半導体設計時の計算機には何を使用しているでしょうか? Windows付属の電卓? まあまあ使いやすいのですが、筆者にとっては致命的な欠陥があります。それは64bitまでしかサポートしていないこと。
アプリケーションにもよりますが、ASICの設計では128bit越えの演算なども使用することもありますのでこれはいただけません。
そこで自分のニーズにあった電卓プログラムを作成してみましたので、その紹介をしたいと思います。

特徴

  • Python3で書いたよ
  • 結果は常に10進、16進、2進の3種類で表示するよ
  • 桁数に制限はないよ。100桁でも1000桁でもコンピュータのリソースが許す限り対応するよ
  • 入力は2進、10進、16進を受け付けるよ。任意の場所で'_'で区切っていいよ
  • 結果が負の場合は16進、2進表示は2の補数として表示するよ
  • Python 3がint型に対して持っている全ての演算をサポートするよ (演算部分はPythonに丸投げしているよ)
  • 結果が小数を含む場合は、16進、2進表示は切り捨てて表示するよ
  • カーソルキーやCtrl-p, Ctrl-nなどで入力のヒストリを辿ることができるよ

デモ

Lcalc > 0x3ff * 10 + 0b111_0010
(DEC) 10,344
(HEX) 0000_2868
(BIN) 0000_0000_0000_0000_0010_1000_0110_1000

Lcalc > 1024 * -1
(DEC) -1,024
(HEX) ffff_fc00
(BIN) 1111_1111_1111_1111_1111_1100_0000_0000

Lcalc > 0xffff_ffff * 0xffff_ffff * 0xffff_ffff
(DEC) 79,228,162,458,924,105,385,300,197,375
(HEX) ffff_fffd_0000_0002_ffff_ffff
(BIN) 1111_1111_1111_1111_1111_1111_1111_1101
      0000_0000_0000_0000_0000_0000_0000_0010
      1111_1111_1111_1111_1111_1111_1111_1111

Lcalc > 11 >> 1
(DEC) 5
(HEX) 0000_0005
(BIN) 0000_0000_0000_0000_0000_0000_0000_0101

Lcalc > 25 / 3
(DEC) 8.333333333333334
(HEX) 0000_0008
(BIN) 0000_0000_0000_0000_0000_0000_0000_1000

入手法

以下にて公開しています。
https://github.com/triggerfish-mongara/lcalc

1
0
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0