1.6 整数演算で端数を偶数丸め (最近接偶数への丸め,JIS丸め,ISO丸め) 公開日:2021年7月19日 C++関数・テンプレート集プログラミング技術情報 今回扱うのは整数除算の結果を最近接遇数丸めする方法についてです。 最近接遇数丸めというのは四捨五入に近いのですが、端数が0.5だったときに偶数方向に丸めるというものです。たとえば、1.5でも2.5でも2になりますし、3. […] 続きを読む
1.5 指定された整数型が表現可能な最小値および最大値を返す。 公開日:2021年7月18日 C++関数・テンプレート集プログラミング技術情報 整数型の表現範囲は<climits>で定義されるINT_MAXやINT_MINのようなマクロを使えば取得することができます。ところがこの方法では、型ごとに異なるマクロを使わないといけません。そのため、テンプレ […] 続きを読む
1.4 指定された整数型が「符号ビット+絶対値」か否かを判定する。 公開日:2021年7月17日 C++関数・テンプレート集プログラミング技術情報 前回、前々回に引き続き、今回は負の整数値の内部表現が符号ビットと絶対値かどうかを判定します。 これも 2 の補数表現のときと理屈は同じです。-1 の下位 2 ビットが 01 (= 1)であれば「符号ビット+絶対値」です。 […] 続きを読む
1.3 指定された整数型が1の補数表現か否かを判定する。 公開日:2021年7月16日 C++関数・テンプレート集プログラミング技術情報 前回に引き続き、今度は1の補数表現かどうかを判定するメタ関数を作っています。 2の補数表現のときと理屈は同じです。-1の下位2ビットが10 (= 2)であれば1の補数表現です。 [crayon-67407f35480c3 […] 続きを読む
1.2 指定された整数型が2の補数表現か否かを判定する。 公開日:2021年7月16日 C++関数・テンプレート集プログラミング技術情報 負の整数値の内部表現が2の補数かどうかを調べるメタ関数を作ってみましょう。これは実はそんなに難しくありません。 [crayon-67407f3548198110113247/] -1の下位2ビットを調べてやればすぐに分か […] 続きを読む
1.1 指定された整数型が符号付きか否かを判定する。 更新日:2021年7月15日 公開日:2021年7月14日 C++関数・テンプレート集プログラミング技術情報 これは簡単です。標準C++ライブラリには、numeric_limitsというクラステンプレートがありますので、その静的データメンバis_signedを参照すればよいだけです。numeric_limitsクラステンプレート […] 続きを読む
1. 整数型に関するテンプレート 更新日:2021年8月2日 公開日:2021年7月14日 C++関数・テンプレート集プログラミング技術情報 元ネタ 1.1 指定された整数型が符号付きか否かを判定する。 1.2 指定された整数型が2の補数表現か否かを判定する。 1.3 指定された整数型が1の補数表現か否かを判定する。 1.4 指定された整数型が「符号ビット+絶 […] 続きを読む
C言語は本当に難しい? 公開日:2021年7月14日 プログラミング技術情報 以前仕事仲間の間で話題になったのですが、未経験の新人にJavaを教育している会社が多いといいます。2年ほど前の話なので今はどうかわかりませんが、そんなに事情は大きく変わらないのではないでしょうか? 一方で弊社のWebサイ […] 続きを読む
やっぱりPHP難しすぎ! 公開日:2021年7月13日 プログラミング技術情報 先日、「PHP難しすぎ!」という記事を書きました。PHPの難しさはマニュアルを読み解くことの難しさにほかなりません。また、仕様が不明瞭な部分が多く、振る舞いを正確に理解するには個別に実験する以外にないのです。今回も、そん […] 続きを読む
第10回 翻訳フェーズ 公開日:2021年7月12日 C言語再入門プログラミング技術情報 C言語のコンパイルは、大きく分けて、「前処理(プリプロセス)」、「(狭義の)コンパイル」、そして「リンク」の順に解決されることはよく知られています。それでは、それよりさらに踏み込んだ順序についてはどうでしょうか? 例えば […] 続きを読む