二進数のループ

[戻る]
TORA 2006/10/27(金) 11:56:52
Byte B

for(i=0;i<B;i++)


このような使い方をしているのを見るのですが,Bが8ビットで00000100の場合,4回ルー
プをすると予想できるのですが,ループコマンドで,2進数を10進数に直さずに使用で
きるのでしょうか。
よろしくお願いします。

keichan 2006/10/27(金) 12:21:24
TORAさんの質問の意味が理解できませんので、逆に質問させて下さい。

>ループコマンドで,2進数を10進数に直さずに使用できるのでしょうか。
では、"2進数" を "10進数" に直して使用しているサンプルを提示願います。

ee 2006/10/27(金) 12:26:54
Byte(unsigned charかな?)が表すのは「数」であって「数字」ではありません。
2進数や10進数は「数」を「数字」で表す場合の表現方法です。
その辺混同されてるのでは?
http://ja.wikipedia.org/wiki/%E6%95%B0

a 2006/10/27(金) 12:27:41
>2進数を10進数に直さずに
意味不明

仮にiがint型とすると、内部は
signdの16ビット(32ビット)データです。

i<B が真の間ループするだけです。

ただこの場合は、
i<(int)B とキャストした方がいいと思います。

TORA 2006/10/27(金) 13:04:07
皆様方,ご返信有難うございます。
暖かいご助言ありがとうございます。
まだ,ピンと来ていないのですが,

Byteが表す[数]が00000100の場合,仮にiがint型とすると、8ビットデータとして
真の間ループすることが考えられるため,4回ループすると考えれる。

このような理解で宜しいのでしょうか。
何度も申し訳ございませんが,ご助言いただけると幸いです。

PATIO 2006/10/27(金) 13:09:31
二進数とか十進数とか言うのは、特定の数値を表現する時の
表現方法に違いであって数値そのものが変わるわけではないという事を
踏まえた上で二進数表現で数値を指定したいと言っているのでしょうか?

あと、C++で二進数表現の数値の記述方法ってありましたっけ?
8進数と10進数と16進数なら知っていますけれど、
二進数表現で数値を表す方法は無かったような気がするんですが。
どうしても二進数表現の値をソース上に示しておきたいのであれば、
コメントで入れとくぐらいしか方法はないと思います。
実際の数値設定には、8進数と10進数と16進数の何れかを使う事になるかと。

PATIO 2006/10/27(金) 13:15:10
> Byteが表す[数]が00000100の場合,仮にiがint型とすると、8ビットデータとして
> 真の間ループすることが考えられるため,4回ループすると考えれる。

というか比較する時に型が違うと型をそろえてから比較するって言う
基本的な話は理解されていますか?
そのまま型が違うままで比較されるわけではなくて内部的には型を合わせて
比較されます。だから(int)で明示的にキャストした方が良いとかかれているのですけれど。

この辺はC言語とかC++言語の入門書を読めば書いてありますから
御自分で読んで見て確かめてください。

TORA 2006/10/27(金) 13:23:09
[[解決]]
PATIO様

ご返信有難うございます。
>あと、C++で二進数表現の数値の記述方法ってありましたっけ?
>8進数と10進数と16進数なら知っていますけれど、
>二進数表現で数値を表す方法は無かったような気がするんですが。

そうですね,説明不足でした。16進数です。
2進数で数値をあらわす方法を考えていました。


>どうしても二進数表現の値をソース上に示しておきたいのであれば、
>コメントで入れとくぐらいしか方法はないと思います。
>実際の数値設定には、8進数と10進数と16進数の何れかを使う事になるかと。

分かりました。

皆様方のお蔭様で解決することができました。

古いスレッドには追加発言できません。