タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

固定小数点数に関するsanthiagomanのブックマーク (25)

  • 【5分で覚えるIT基礎の基礎】ゼロから学ぶ2進数 第4回

    矢沢久雄 2進数の0と1しか取り扱えないコンピュータは,小数を表すためにトリッキーな方法を使っています。この方法は,浮動小数形式(ふどうしょうすうてんすうけいしき)と呼ばれ,IEEE(アイ・トリプル・イー,Institute of Electrical and Electronics Engineers=米国電気電子技術者協会)で規定されています。すなわち,トリッキーとはいえ,浮動小数形式が事実上の世界標準なのです。皆さんが,コンピュータのキーボードから3.14のような小数を入力すると,コンピュータの内部では浮動小数形式の情報として表されます。 ●固定小数形式と浮動小数形式 いつものように,まず10進数で小数の表現方法を考えてみましょう。小数とは,小数点を意味するドット(.)を持つ数のことです。当たり前のことですが,図1のようにドットの左側に1以上の数を書き,ドットの右側に1未満の数を書き

    【5分で覚えるIT基礎の基礎】ゼロから学ぶ2進数 第4回
  • 画像解析を高速化させるためのTipsわかりやすくまとめてみた(2)|伊部 卓秀 (アダコテック)

    前回は、整数型での四捨五入の話をしました。整数型のみで計算をすれば浮動小数点型を使うよりも(ちょっとだけ)速く計算できますよという話でした。 前回の整数型演算の話の延長で、今回は、固定小数点数の話をします。(SIMDの話は、次回以降にします。) 固定小数点数とは通常、コンピュータで小数を表現する手段として浮動小数点数(float型とか、double型とか)で表現しますが、限られたビット数で高速に計算しないといけない場合(画像って8bit整数などで表現されていますよね)などには、固定小数点数を使います。 固定小数点数は、小数点の位置が固定されている数の表現で、例えば、8bitのうち下から2つ目に小数点を置くと決めた場合、2進数で 001100.11 のように表現ができ、これは10進数で 12.75 を意味します。 固定小数点数型というのが、CPUやプログラミング言語に用意されているわけではな

    画像解析を高速化させるためのTipsわかりやすくまとめてみた(2)|伊部 卓秀 (アダコテック)
  • 浮動小数点数を分かりやすく解説

    浮動小数点数とは、コンピュータにおける数値を表現する方法の一つで、主に小数点を含む数値を表現するときに利用されています。 浮動小数点数の形式浮動小数点数は次のように「符号」「指数部」「仮数部」の形式で表現します。※32ビットの例 符号:正の数が0、負の数が1指数部:2nのnの部分を2進数表記にした値を格納(負の数の場合は2の補数を使用)仮数部:正規化した小数点以下の値を格納 浮動小数点数の「仮数部」には小数点以下の値が入り、指数部には2nのnを2進数にした値が入ります。 正規化とは浮動小数点数の仮数部には正規化した値(小数点以下の値)が入ります。正規化とは、小数点の位置を調整し最上位桁を0以外の値にする作業のことです。 スポンサーリンク 次の図は正規化のイメージ例です。 「0.036×10-2」「0.00036×100」「0.0036×10-1」は同じ値です。この値を「0.36×10-3」

    浮動小数点数を分かりやすく解説
  • 組み込みCPUって小数の計算ができないの!?

    という話題について。 INTELやAMDやARMだとか、パソコンやスマホに入っているCPUは計算能力に特化しているので、整数も小数も超高速に計算できます。 が、組み込み用途で使うようなCPU(マイコン・MPU)なんていうのは非常に貧弱なため、全然違います。 組み込みマイコンでも高い部類(千円に近い値段)のものは浮動小数点のハードウェアを持っているのでそれなりな速度で計算できますが、 普通の安いマイコンではそもそも浮動小数点のハードウェアを持っていません。 つまり、整数計算しかできません! それもスマホやPCみたいに64bitなんてのではなく、16bitや下手したら8bitだったりします。 要は、小数の計算が出来ないどころではなく、整数の計算すらしょぼいのです。 8bitのマイコンでも32bitなどの大きな数値を計算することは出来ますが、「8bitごとに足し算して繰り上げて上の桁の計算に使用

  • 固定小数点プログラム開発の手間を省ける組み込み機器向けDSPコアを開発 ──15人日でMP3デコーダを開発可能に

    固定小数点プログラム開発の手間を省ける組み込み機器向けDSPコアを開発 ──15人日でMP3デコーダを開発可能に 小林士朗 ●浮動小数点はディジタル信号処理と相性が良い 自然界の信号は実数で表現されます.これを有限なビット数でいかに正確にモデル化できるかが,信号処理の品質を決定します.モデル化の正確性は,算術方式ごとに異なります.そのため,ディジタル信号処理において,どのような算術方式を用いるかは非常に重要です. 浮動小数点と固定小数点を用いた場合,どの範囲の数値を表現できるか(値域)を図2に模式的に示します.仮数の語長が有限なので,表現可能な数値は離散的になります.これはどちらの算術方式でも同様です. 指数を持つ浮動小数点データ・フォーマットは,広い値域を自動的にカバーします.指数の語長の有限性は,カバー可能な値域の広さとして現れます.図2を見ると,0の近傍にも表現できない値域が存在しま

  • 固定小数点数について - 組み込みC/C++

    何回かに渡り初等関数の計算について取り上げてきました。ブログのテーマが組み込みである事を差し置いて変数の型にdoubleを使用していましたが、実際に組み込みにおいてdoubleを使用するには、対象マイコンのアーキテクチャにFPU(Floating point number Processing Unit)が含まれているかを確認した方が良いかと思います。(例えばRXマイコンであればFPUが搭載されていますがfloatと限定的です。その場合はあまり誤差が問題になることはないと思いますのでdoubleをfloatと読み替えてください。) 整数型の演算は僅かなCPUサイクルで実現できるようハードウェアに除算器、乗算器が搭載されていますが、浮動小数点の演算はFPUがないと多くのCPUサイクルを消費してしまいます。そのため知らないでdoubleを使用するとシステムのパフォーマンスを悪化させかねません

    固定小数点数について - 組み込みC/C++
  • 固定小数点数と浮動小数点数の違いを調べよう!

    2進数の計算で「小数点」が出てくるとちょっとハードルが上がる感じがしますが、今回はコンピュータにおける小数点の表現方法の「固定小数点数」と「浮動小数点数」について解説します! 【固定小数点数表示】0.00000015 【浮動小数点数表示】0.15×10-6 固定小数点数とは? 2進数で小数点を扱う際に何ビット目(何桁目)が小数点になるかあらかじめ決めておく方法です。 普段私たちが数字を計算する時は当たり前のように小数点の位置は決めて計算してますよね。それと同じことをコンピュータでも行うだけです。 例えば2進数の「101.01」を8ビットの固定小数点数で表現するときに、4桁目の後を小数点の場所と決めると、次のようになります。 加算や減算をするときもこの形式に合わせた数を利用して計算します。また、一番左のビット(最上位ビット)を符号ビットとすることで、負数も表現できます。 メリット・デメリット

    固定小数点数と浮動小数点数の違いを調べよう!
  • 固定小数点数とは - Cognicull

    固定小数点数 固定小数点数とは、桁数と小数点の位置を固定した2進数の小数のことです。 固定小数点数は、コンピュータで使われる数値表現の一種です。 例えば、小数点以下が2桁である8桁の固定小数点数は、101101.11のような数です。 コンピュータでは、101101.11は、ビット列を用いて、10110111と表されます。このように、コンピュータでは、固定小数点数を扱うときに、暗黙的に小数点の位置を把握しておく必要があります。

  • 固定小数点演算について

    前回では、「ブレゼンハム」アルゴリズムによって直線を引きましたが、整数による直線の描画方法はもう一つあります。 それは「固定小数点演算」を使った方法です。 今回は、まずは「固定小数点演算」がどういうものであるかを説明します。 「固定小数点演算」は、浮動小数点数値を整数で擬似的に表現し、演算を高速化するために使われます。 画像処理プログラムなどでは、高速化の手段としてよく使われるので、覚えておいた方が良いです。 固定小数点数では、整数の「上位ビットを整数部分」「下位ビットを小数部分」として扱います。 固定小数点数として扱う整数の全ビット数が 32bit の場合、小数部分を 12bit として扱うなら、 「下位 12bit が小数部分、上位の残り 20bit ビットが整数部分」となります。 固定小数点数で気をつけなければならないのは、このビット数のバランスです。 小数部分のビット数が多いほど小

  • 固定小数点(基礎編) – LaG – Portfolio

  • Qフォーマット | 回路実験

    固定小数点の表し方 Q15フォーマットというと 16bitで小数点以下が15桁(bit)の場合を指す(最上位ビットは符号bit) この場合 表せる数値は+1~-1(厳密には違う) で、小数点以上がある場合で例えば小数点以上が2ビット 小数点以下が13ビットの場合は Q2.13となります がこれにも色々方言があるようで2Q13と書いてあるものもありました。 Q2.13の場合、表せる範囲は+4~-4(これも厳密には違う...)です。 ではどう厳密には違うのかというと Q15で+の最大値はというと 0x7fffですね これは 1/2+1/4+1/8+1/16+1/32+1/64+1/128+1/256+ 1/512+1/1024+1/2048+1/4096+1/8192+1/16384+1/32768 です。で0.99996482になります。 ふー 最少値は0x8000ですね これは-1になりま

    Qフォーマット | 回路実験
  • FPGAを使った数値演算回路実現の勘所(4) ―― 浮動小数点演算器の構成を考える Part 2

    前回に続いて,浮動小数点演算の実現方法について考えていきます.浮動小数点演算ではIEEE 754のフォーマットが有名ですが,ハードウェアで演算器を実現する場合,必ずしもこれに従う必要はありません.システムが要求する精度やハードウェアの制約をきちんと把握し,生成される回路構成を見通しながら論理合成すれば,効率の良い回路を設計できます.(編集部) 技術解説・連載「FPGAを使った数値演算回路実現の勘所」 バック・ナンバ 第1回  加算器の構成を考える 第2回  乗算器の構成を考える 第3回  浮動小数点演算器の構成を考える Part 1 1.IEEE 754をぶちこわせ FPGAで浮動小数点をうまく取り扱うための議論に入ります.ご大層な見出しをつけてしまいましたが,IEEE 754のフォーマットに従わなくても,十分浮動小数点の恩恵は受けられるのだ,という話をします. ●IEEE 754に従わな

  • FPGAを使った数値演算回路実現の勘所(3) ―― 浮動小数点演算器の構成を考える Part 1

    今回は,浮動小数点演算の基礎,および浮動小数点による四則演算の処理手順について説明します.固定小数点演算の場合と異なり,浮動小数点演算では,フォーマットや有効けた数,誤差などについての正確な理解が求められます.取り扱いが面倒な浮動小数点演算ですが,仕組みをきちんと把握していれば,効果的にFPGAへ回路を実装することができます.(編集部) 技術解説・連載「FPGAを使った数値演算回路実現の勘所」 バック・ナンバ 第1回  加算器の構成を考える 第2回  乗算器の構成を考える FPGAにおける浮動小数点演算回路の実現を考えてみます. 「浮動小数点演算」. 何だか面倒くさそうな印象しか与えないような響きですね.筆者も昔は避けて通りたい方式でしたし,面倒なのは今も変わりません.少なくとも固定小数点演算より面倒であることは事実ですし,避けて通れるのであれば,それに越したことはないでしょう.しかし,手

  • スケーリング - MATLAB & Simulink - MathWorks 日本

    スケーリング固定小数点数のダイナミック レンジは、同等のワード サイズの浮動小数点をはるかに下回ります。オーバーフロー状態を防ぎ、量子化誤差を最低限に抑えるには、固定小数点数をスケーリングしなければなりません。 Fixed-Point Designer™ ソフトウェアでは、2 進小数点でスケーリングが定義される固定小数点データ型を選択するか、ニーズに合った任意の線形スケーリングを選択することができます。この節では、固定小数点データ型で使用できるスケーリングの選択肢を示します。 固定小数点数は、一般的な勾配とバイアスのエンコード スキームにより表すことができます。

  • 優れたコードプロパティ - dSPACE

    時間を要し、ミスが起きやすい手作業によるスケーリングプロセスを短縮するため、TargetLinkでは自動スケーリングツールが提供されています。このツールにより、適切な範囲の検出と適正なスケーリングパラメータの計算が可能になります。従来、数日から数週間かかっていたスケーリング作業が、数分から数時間で済むようになります。 TargetLinkは、スケーリング手法として組込み制御アプリケーションで幅広く使われる2係数の線形スケーリングを提供しています。TargetLinkで固定小数点スケーリングを指定するためのプロパティには、以下が存在します。 データタイプ 2のべき乗のスケーリング係数または任意のスケーリング係数 オフセット値 制約値 ビットセーフティマージン 飽和オプション 固定小数点スケーリングはソフトウェアエンジニアが手作業で行うこともできますが、ほとんどの場合はTargetLinkの自

  • 範囲と精度 - MATLAB & Simulink - MathWorks 日本

    範囲と精度数値の "範囲" によって表現の限界が指定され、"精度" によって表現の隣接する数値間の距離が指定されます。固定小数点数の範囲と精度は、語長およびスケーリングによって異なります。 メモ 丸め手法が呼び出されるかオーバーフローやアンダーフローが発生するかを把握するには、選択した固定小数点データ型およびスケーリングの精度と範囲に注意しなければなりません。 範囲範囲とは、固定小数点データ型とスケーリングで表現できる数値の範囲です。固定小数点ワードのサイズが制限されているため、範囲には制限があります。 以下に、語長 wl、スケーリング S、およびバイアス B の 2 の補数の固定小数点数で表現可能な数値の範囲を示します。ここで、wl、S、および B の値は、正の数値と負の数値のどちらにも許容されます。 データ型が符号付きと符号なしの固定小数点数のどちらでも、異なるビット パターン数は 2

  • hdLab : 第10回「固定小数点の演算」(201302) ~ 弊社WEBサイトは移転しました (左のロゴをクリック)

    HDLによる回路設計を行う場合、取り扱う数値は整数であることが多いかと思います。 しかしデジタルフィルタやモータ制御などの回路設計では小数を取り扱うことも少なくはありません。今回は小数を含めた固定小数点の演算について触れてみたいと思います。 ●小数値の表現方法 整数部は2進数の場合、それぞれの桁は2の0乗、2の1乗と2のべき乗単位の重みを持ちますが、これと同じように小数部は2の-1乗、2の-2乗といったようにマイナスの数値が指数部となった重みを持ちます。 例えば、整数部6ビット、小数部6ビットのフォーマットで表現される2進数(000100.010110)は、10進数で表現すると4.34375になります。 ●フォーマットを決める 小数値の表現方法が分かったところで、小数値を扱う場合に重要なのが数値を表現するためのフォーマット決めです。符号ビットの有無、整数部の桁数、小数部の桁数を決める作業で

  • コン基礎の教え方の宝庫(2) 固定小数点数と浮動小数点数

    コン基礎の教え方の宝庫(2) 固定小数点数と浮動小数点数 私はこうやって教えています~難解な技術をわかりやすく教えるコツ~ 固定小数点数と浮動小数点数は、どちらもコンピュータが小数点のある数を取り扱う形式です。どちらも、やや難解であまり面白くない(かな?)ので、堅苦しく説明したら新人さんたちは拒絶反応を示すでしょう。どのように説明すればよいか、講師を務める筆者は、いつも頭を悩ませています。筆者の教え方を紹介しますので、皆様のご意見をいただければ幸いです。 小数点数を表すには工夫が必要です 浮動小数点数の説明の前に、2進数の基的な説明は終わっているとします。新人さんたちは、2進数の1桁が、デジタルデータを伝える1の電線に対応することを知っています。そこで、こんな切り口で説明を始めます。 0と1しかないのだから、小数点のある数を表せないよね。だって、小数点のドット(.)を表せないでしょう。

    コン基礎の教え方の宝庫(2) 固定小数点数と浮動小数点数
  • コン基礎の教え方の宝庫(1) 2進数の手ほどき

    今回から、新しいテーマで記事を書かせていただきます。IT企業に入社したばかりの新人さんたちに、コンピュータの基礎を教える方法のアイディア集です。私がやっている方法をいくつか紹介しますので、「それじゃあダメだ」とか「この方法はどうだろう」といった皆様のご意見をいただければ幸いです。アイディアをたくさん集めて、教え方の宝庫と呼べるようなコーナーにできればいいなぁと思います。よろしくお願いします。 第1回のテーマは「2進数」です。学生時代に、ほとんどコンピュータの勉強をしていない新人さんたちを対象として、楽しくわかりやすく2進数を教えるには、どのような切り口にしたらよいでしょう。最初に何を教えて、次にどのように展開するか、一緒に考えてください。 なぜ2進数を学ぶのかを説明する いきなり「0と1だけで数を表すのが2進数です」なんて話をしたら、新人さんたちはとまどうでしょう。なぜ2進数を学ぶのか説明

    コン基礎の教え方の宝庫(1) 2進数の手ほどき
  • float型では123456789すらも表現できない話 - Qiita

    はじめに この記事はQualiArts Advent Calendar 2020の22日目の記事になります。 稿では数値の扱われ方の説明を行ない、浮動小数点数で表現できる整数値の有効桁数の話をします。 そして、最終的に単精度浮動小数であるfloat型では 123456789 が表現できないことを確認していきます。1 背景 ゲームの演出で獲得経験値をパラパラとアニメーションでカウントアップさせようとしていました。 とりあえず 0 から 123456789 までカウントアップさせる実装をしたものの、123456789 になってくれない。 くそぅ、、何度やっても 123456792 になってしまう!!! 結論から言うと、カウントアップの内部処理で値がfloat型として扱われており、float型では 123456789 の値は表現できなかったというオチでした。 int型の最大値は 2,147,4

    float型では123456789すらも表現できない話 - Qiita