
No.5ベストアンサー
- 回答日時:
こんにちは。
FarEyesです。#3の件で補足させて下さい。
変数 VOLT_10 について、
VOLT_10 = 1 の時に 10V を意味する。
ということは、
VOLT_10 には 10V の 10 という値が 1/10 されて格納されている。
と考えてみて下さい。
その上で、
VOLT_10 の値を 「元に戻す」 ための手段として、
VOLT_10 の値を 10倍 する。
と考えてみては如何でしょう?
以上です。
遅くなりましてすみません。
1ビット(LSB)の重みが1/10されているという考えに
全く結びつきませんでした
お手数と時間を掛けさせてしまってすみませんでした。
基礎を詳しく教えていただいて大変たすかりました
ありがとうございました
No.3
- 回答日時:
こんにちは。
#2です。> 「なぜ小さい単位に合わせるのに割らずに倍するのか?」
> これが全く理解できていません。
> これは、算数又は数学のお話になるのでしょうか?
そうですね。
どちらかと言えば算数or数学の分野の話になるかもしれませんね。
話を単純化して考えてみましょう。
VOLT_10 = 1 ( = 10V )
のとき、VOLT_10 を VOLT_1 に格納するとします。
単純に、
VOLT_1 = VOLT_10
としてしまうと、
VOLT_1 = 1 ( = 1V )
となり、本来、「10V」の意味合いの値が、「1V」になってしまいます。
では、質問者さんの言われるように、VOLT_10 を 1/10 するとします。
VOLT_1 = VOLT_10 / 10
すると、
VOLT_1 = 1 / 10
↓
VOLT_1 = 0 ( = 0V ) (←整数値での演算のため、結果は 0 になる)
となってしまい、今度は本来、「10V」の意味合いの値が、「0V」になって
しまいます。
では、VOLT_10 を 10倍した場合は、
VOLT_1 = VOLT_10 * 10
↓
VOLT_1 = 1 * 10
↓
VOLT_1 = 10 ( = 10V )
となり、VOLT_1 での内部値も、「10V」に相当する値(=10)に正しく設定
されたことになると思います。
これで、解りますでしょうか?
No.2
- 回答日時:
こんにちは。
確認も含めてコメントさせて戴きます。
※的外れだった場合はすみません。
1)各変数について
> LSB(1ビットあたり)1Vの単位を持つ変数「VOLT_1」と
> LSB(1ビットあたり)10Vの単位を持つ変数「VOLT_10」
上記2つの変数ですが、仮にそれぞれ、8ビット(=1バイトとします)の
変数だったと仮定して、
<変数: VOLT_1>
[MSB] [LSB]
ビット並び: 7 6 5 4 3 2 1 0 値(単位=ボルト)
0 0 0 0 0 0 0 0 = 0V
0 0 0 0 0 0 0 1 = 1V
0 0 0 0 0 0 1 0 = 2V
0 0 0 0 0 0 1 1 = 3V
0 0 0 0 0 1 0 0 = 4V
0 0 0 0 0 1 0 1 = 5V
: :
: :
<変数: VOLT_10>
[MSB] [LSB]
ビット並び: 7 6 5 4 3 2 1 0 値(単位=ボルト)
0 0 0 0 0 0 0 0 = 0V
0 0 0 0 0 0 0 1 = 10V
0 0 0 0 0 0 1 0 = 20V
0 0 0 0 0 0 1 1 = 30V
0 0 0 0 0 1 0 0 = 40V
0 0 0 0 0 1 0 1 = 50V
: :
: :
ということでしょうか?
2)単位合わせについて
注)上記1)の定義だった場合の話になります。
> 「VOLT_1」を10V側のに合わせるには「VOLT_1」を単純に10倍すれば宜しいですよね?
> 又「VOLT_10」を1V側に合わせ込むには逆に1/10すれば宜しいですよね?
単位を合わせるのなら、(※丸めの件は後述)
まず、
VOLT_10 を VOLT_1 の単位に合わせる → VOLT_10 を 10倍 する。
そして、
VOLT_1 と 「補正後のVOLT_10」の値で 計算を行う。
その結果を、
◎単位1Vの値とする場合は、
計算結果 を 「そのまま」使用する。
◎単位10Vの値とする場合は、
計算結果 を 1/10 する。
のように双方の値を、「単位が小さい方」の値に合わせ込んでから、計算するのが
良いのではないでしょうか?
具体的な例を上げると、
※計算は全て整数値での計算とします。
<例1>
変数: VOLT_1 = 14 (= 14V)
変数: VOLT_10 = 1 (= 10V)
変数: VOLT_10X (単位:1=10V の変数とします)
とした場合で、
変数 VOLT_10X に VOLT_1 と VOLT_10 の合計値を格納する場合で、
まず、小数点以下を「切り捨て」する場合、
VOLT_10X = ( VOLT_1 + ( VOLT_10 * 10 ) ) / 10;
とします。
結果は、
VOLT_10X = ( 14 + ( 1 * 10 ) ) / 10;
VOLT_10X = ( 14 + 10 ) / 10;
VOLT_10X = 24 / 10;
VOLT_10X = 2; /* = 20V */
となります。
次に、小数点以下を考慮する場合で、
まず、小数点以下1桁を「四捨五入」する場合、
VOLT_10X = ( VOLT_1 + ( VOLT_10 * 10 ) + 5 ) / 10;
とします。
結果は、
VOLT_10X = ( 14 + ( 1 * 10 ) + 5 ) / 10;
VOLT_10X = ( 14 + 10 + 5 ) / 10;
VOLT_10X = 29 / 10;
VOLT_10X = 2; /* = 20V */
となります。
あるいは、小数点以下1桁を「切り上げ」する場合、
VOLT_10X = ( VOLT_1 + ( VOLT_10 * 10 ) + 9 ) / 10;
とします。
結果は、
VOLT_10X = ( 14 + ( 1 * 10 ) + 9 ) / 10;
VOLT_10X = ( 14 + 10 + 9 ) / 10;
VOLT_10X = 33 / 10;
VOLT_10X = 3; /* = 30V */
となります。
<例2>
変数: VOLT_1 = 14 (= 14V)
変数: VOLT_10 = 1 (= 10V)
変数: VOLT_1X (単位:1=1V の変数とします)
とした場合で、
変数 VOLT_1X に VOLT_1 と VOLT_10 の合計値を格納する場合、
VOLT_1X = VOLT_1 + ( VOLT_10 * 10 );
とします。
結果は、
VOLT_1X = 14 + ( 1 * 10 );
VOLT_1X = 14 + 10;
VOLT_1X = 24; /* = 24V */
となります。
のような計算式になるのではないでしょうか?
以上です。
とても丁寧な解説ありがとうございます。
まず1)の変数のご回答については説明不足ですみません。
FarEyesさんの見解とおり、VOLT_1が1だったら1Vで、
VOLT_10が1だったら10Vという仮定です。
本題の単位合わせですが、ありがたい解説をして頂き大変恐縮ですが
私が知りたかった事は合わせ込みの基礎の基礎(ホントに低レベルな事)と思われる
VOLT_10 を VOLT_1 の単位に合わせる場合は「VOLT_10を10倍する。」
という部分についてです。
「なぜ小さい単位に合わせるのに割らずに倍するのか?」
これが全く理解できていません。
これは、算数又は数学のお話になるのでしょうか?
これについて、詳しい情報があるサイトもしくわ、解説を頂きたく
お手数掛けますが、再度ご回答のほどよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 代数学 環 1 2022/10/12 17:29
- 英語 数字の単位について教えてください 6 2022/11/10 08:25
- SQL Server SQL 期間内の実施数を合計したい 2 2023/03/03 22:28
- その他(Microsoft Office) EXCEL VLOOKUPに関する質問 5 2023/02/08 11:38
- Excel(エクセル) エクセルの印刷範囲をページ単位で可変にする方法 3 2022/05/23 13:04
- 大学・短大 大学 留年について 6 2023/06/21 20:17
- 大学受験 【至急】文系大学受験は数II・Bは必要? 2 2022/06/29 20:29
- 物理学 物理の単位 4 2022/08/20 23:01
- 大学受験 英単語帳について質問です。 たくさんの回答お待ちしております。 現在高3、産近甲龍志望です。 現在タ 5 2023/08/21 11:50
- 高校 述語論理の基本的な質問 3 2022/04/23 10:35
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Ecel 2003 VBA 画像 挿入
-
javaの数値リテラルや文字リテ...
-
LU分解
-
プログラミングの質問です
-
数値にウエイトをかけたい
-
access での BETWEEN
-
strutsを使って値をやり取りす...
-
テキストボックスに入力された...
-
0x0F>>2は何故答えが3になる?
-
変数のビット列
-
txtから読み込んだ計算式の結果...
-
javaで\\という文字列の記述方法
-
<html:text> disabled = 'true'...
-
文字列で読み込んだ計算式で値...
-
【JavaScript】指定箇所に文字...
-
パラメータを利用するには…
-
pasteHTMLでパスが勝手に変換さ...
-
動的配列が存在(要素が有る)か...
-
ファイル書き込みに関して
-
2次元の配列となっているクラ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ダブルクォーテーションを含む...
-
ArrayListの要素数の上限
-
Stringクラスの変数の格納アド...
-
javaのCSVデータ読込についてです
-
PSQLExceptionが発生する
-
excel vba 時間計算と条件分岐...
-
wsprintf関数の使い方について
-
BCD形式で時刻を!
-
C言語の変数(LSB)の合わせ込...
-
DOSバッチで変数の値を変数名に...
-
JSPでの計算結果表示
-
DateTimePickerに値を入れたい...
-
JSPでHashMap・配列の変数の値...
-
StringBufferクラスについて
-
char型での演算子
-
結合した文字列をファイル名に...
-
String str = "a\\\\b\\\\c";
-
Evaluate()に文字列の形式の数...
-
getParameterの値変更
-
matchesを否定文として使う方法...
おすすめ情報