※2020/10/19 version 0.30 に更新。モードを変更するショートカットキーを「Alt+m」に変更しました。ビット制限下の Decimal モードにて、小数点以下の演算結果を10進数基準とするように変更しました。
数式を編集して計算することができる、16進数対応の計算機です。整数だけでなく小数も扱えます。数式の履歴を保存しており、選択して再計算することが可能です。
Windows10 (64bit) 専用で、当ソフトウェア単体で動作します。
1. 最新版ダウンロード (uploader.jp)
- MD5: f2aa5482a3fc3fd7c9e0851df70d719c
- SHA256: d0a04a344a969c4a619a755c652f724102789a34fec4ef62691ad8ac9d2f12a2
2. 使い方
2-1. インストール / アンインストール
ダウンロードしたファイルを任意の場所に解凍し、”ExCalculatorWX.exe” を実行してください。
Windows 10 (64bit) 環境で動作します。Python で作成していますが、使用環境には Python が導入されていなくても構いません。
アンインストールの際は、フォルダごと削除してください。レジストリは使用していません。
2-2. 基本仕様
ボタンまたはキーボードで数式を入力します。
「=」ボタンを押すか、キーボードから「Enter」を入力すると、解を求めます。
画面左端のトグルボタンで、解の表記を指定することができます。
主な演算子やボタンの仕様は以下の通りです。
+ | 加算 |
– | 減算 |
* | 乗算 |
** | べき乗 |
/ | 除算(結果は小数) |
// | 商(結果は整数) |
% | 剰余(結果は整数) |
CA | すべてクリア(Clear All) |
CE | 数式をクリア(Clear Expression) |
BS | バックスペース |
数式に10進数以外を入力するときは、先頭に「0x」「0o」「0b」を付けてください。それぞれ16進数、8進数、2進数に対応します。数式内で複数の進数表記を混在させても大丈夫です。
ボタンは、通常の「General」と、関数等を配置した「Extra」との2つのパネルがあります。適宜切り替えてご利用ください。
AND | ビット演算子 & |
OR | ビット演算子 | |
XOR | ビット演算子 ^ |
NOT | ビット演算子 ~ |
abs(x) | x の絶対値 |
ceil(x) | x 以上の最小の整数(正の数であれば切り上げと同義) |
floor(x) | x 以下の最大の整数(正の数であれば切り捨てと同義) |
sin(x) | サイン。角度 x をラジアンで指定。 |
cos(x) | コサイン。角度 x をラジアンで指定。 |
tan(x) | タンジェント。角度 x をラジアンで指定。 |
asin(x) | アークサイン。結果はラジアン。 |
acos(x) | アークコサイン。結果はラジアン。 |
atan(x) | アークタンジェント。結果はラジアン。 |
sqrt(x) | x の平方根。 |
pi | 円周率π。 |
rad(x) | x 度をラジアンに変換。 |
deg(x) | x ラジアンを度に変換。 |
e | 自然対数の底。 |
ln(x) | 自然対数。e を底とする対数。 |
log10(x) | 常用対数。10を底とする対数。 |
log2(x) | 2進対数。2を底とする対数。 |
exp(x) | 指数関数。e のべき乗。 |
sin などの角度指定がラジアンであることに注意してください。
例えば「sin30度」を計算したいときには、「sin(rad(30))」と入力してください。
また、解や各進数表記をクリックすると、数式に代入することができます。
数式の履歴は32個まで保存しています。数式の右端の矢印を押せば履歴が開きます。
解を求めた後にもう一度「=」あるいは「Enter」を入力した場合には、自動で連続計算を行います。現在の解に、最後の演算子以降を付加して計算します。
2-3. ビットとモード
画面左下のコンボボックスで、ビットとモードを指定することができます。
ビット指定の「Auto」は制限なしです。ビット制限付きは「64bit(QWORD)」から「08bit(Byte)」まで選択できます。
モードの「Decimal」は10進浮動小数点算術をサポートしており、「1.1+2.2=3.3」のような小数演算を正確に行うことができます。
モードの「Signed」と「Unsigned」は、それぞれ符号付き / 符号なしの整数演算や、2進浮動小数点数の演算に用います。このモードでは「1.1+2.2=3.3000000000000003」となります。
以下に設定の組み合わせ例を載せておきます。一般的な計算機と同じような動作をするのは「Auto」と「Decimal」の組み合わせです。「Decimal」モードで整数演算を行った場合は、「Signed [整数]」と同様の動作になります。
ビット指定 | モード指定と結果 | 用途 |
---|---|---|
Auto | Decimal [小数] | 10進浮動小数点算術。 |
〃 | Signed / Unsigned [小数] | 倍精度浮動小数点数 double。 |
〃 | Signed / Unsigned [整数] | 整数演算 (結果上限 256bit)。 |
64bit(QWORD) | Decimal [小数] | 10進浮動小数点算術。小数点以下15桁まで。 |
〃 | Signed / Unsigned [小数] | 倍精度浮動小数点数 double。 |
〃 | Signed [整数] | 符号付き長整数型 long。 -9223372036854775808~9223372036854775807 |
〃 | Unsigned [整数] | 符号なし長整数型 unsigned long。 0~18446744073709551615 |
32bit(DWORD) | Decimal [小数] | 10進浮動小数点算術。小数点以下7桁まで。 |
〃 | Signed / Unsigned [小数] | 単精度浮動小数点数 float。 |
〃 | Signed [整数] | 符号付き整数型 int。 -2147483648~2147483647 |
〃 | Unsigned [整数] | 符号なし整数型 unsigned int。 0~4294967295 |
16bit(WORD) | Decimal [小数] | 10進浮動小数点算術。小数点以下3桁まで。 |
〃 | Signed / Unsigned [小数] | 半精度浮動小数点数。 |
〃 | Signed [整数] | 符号付き短整数型 short。 -32768~32767 |
〃 | Unsigned [整数] | 符号なし短整数型 unsigned short。 0~65535 |
08bit(Byte) | Decimal [小数] | 10進浮動小数点算術。小数点以下1桁まで。 |
〃 | Signed [整数] | 符号付き1バイト整数型 char。 -128~127 |
〃 | Unsigned [整数] | 符号なし1バイト整数型 unsigned char。 0~255 |
2-4. キーボードショートカット
様々な操作はキーボードショートカットからも可能です。
おすすめは「Tab」キーで、ワンタッチで数式に解が挿入されます。また、「↓」で直前の数式を入力したり、「Esc」で数式をクリアしたりすることができます。
キーボード | ボタン | 動作 |
---|---|---|
Enter | = | 解を求める。 |
↑ / ↓ | なし | 数式を履歴から入力する。 |
Alt + ↑ / Alt + ↓ | 数式欄右端の▼ | 数式の履歴を開く。 |
Tab | 解をクリック | 解を数式に代入する。 |
; | + | 数式に + を入力する。 |
: | * | 数式に * を入力する。 |
Back Space | BS | バックスペース。 |
Esc | CE | 数式をクリアする。 |
Ctrl + w | CA | すべてクリアする。 |
Ctrl + h | Hex 解をクリック | 数式に16進数の解を代入する。 |
Ctrl + d | Dec 解をクリック | 数式に10進数の解を代入する。 |
Ctrl + o | Oct 解をクリック | 数式に8進数の解を代入する。 |
Ctrl + b | Bin 解をクリック | 数式に2進数の解を代入する。 |
Alt + h | Hex トグルボタン | 解の表記を16進数にする。 |
Alt + d | Dec トグルボタン | 解の表記を10進数にする。 |
Alt + o | Oct トグルボタン | 解の表記を8進数にする。 |
Alt + b | Bin トグルボタン | 解の表記を2進数にする。 |
Alt + t | ビットコンボボックス | ビット制限を切り替える。 |
Alt + m | モードコンボボックス | モードを切り替える。 |
3. 特殊な仕様
3-1. オーバーフローと右シフト
Auto 以外のビットを指定したとき、演算結果が表現可能範囲を超えるとオーバーフローします。
例えば 32bit(DWORD) を指定して「0xFFFFFFFF+1」を計算すると、結果は「0」になります。
また、Signed(符号付き)を指定したときの負数の右シフトは、入力値の表記によって結果が変わります。
10進数をシフトする際は算術シフト、それ以外では論理シフトが行われます。
算術シフトでは上位桁が符号で埋められるのに対し、論理シフトでは「0」で埋められます。これは、数式に入力された各数値を事前検証することが困難で、演算を行ってから指定ビットに収めているために起こります。
3-2. ビット演算子NOT (~)
Python のビット演算子NOTは、単純なビット反転ではありません。ビット指定を Auto にして制限をかけない場合、上位の桁が無限に続いていると想定して反転されます。そのため、「~0b0001」を計算すると「-0b10」になります。
「0b1110」という結果を得たい場合は、「~0b0001 & 0b1111」と入力してください。そうすると2の補数を計算することになります。
Auto 以外のビットを指定すれば桁数が制限されるため、単純なビット反転になります。
例えば 08bit(Byte) を指定してから「~0b11001100」を計算すると、「0b00110011」が得られます。
3-3. 浮動小数点数の表記
結果が小数になる場合、10進数以外は IEEE754 規格の交換形式で表記します。16進数のみ、C99 規格の16進浮動小数点リテラルも併記します。
交換形式はビット指定の影響を受けますが、16進リテラルは常に 64bit で処理します。
これらの交換形式を計算に用いることはできません。計算したいときは10進数で入力してください。
16進リテラルが単独で数式に入力された場合のみ、その結果を表示することができます。ただしサフィックスには対応していません。
3-4. Decimal モードの特殊な使い方
Decimal モードで結果が小数となる演算を行った場合、その結果が表現範囲内の有限小数であれば、10進数表記の欄に既約分数を併記します。数式に10進数以外が入力された場合には、この機能は働きません。
また、ビットに Auto 以外を指定すると、10進数における小数点以下の桁数を制限します。場合によっては、その方が正確な結果を得られることがあります。
例えば、sin(pi) の結果は本来 0 となるはずですが、通常通り計算すると 1.2246467991473532e-16 になってしまいます。円周率の精度を可能な限り上げてみても、この結果を 0 にすることは困難でした。
ビットを指定するとそれに応じて小数点以下を丸めるので、0 という結果を得ることができます。このとき、他の進数表記も10進数に合わせて計算されます。
4. 更新履歴
- 2020/10/19 (version 0.30) ; モードを変更するショートカットキーを「Alt+m」に変更。ビット制限下の Decimal モードにて、小数点以下の演算結果を10進数基準とするように変更。ソースコード全般のリファクタリング。
- 2020/08/20 (version 0.20) ; バッファオーバーラン対策を実施。10進浮動小数点算術をサポート。Decimal モードにて既約分数も併記するように変更。
- 2020/08/12 (version 0.10) ; 公開。