2012-08-06 9 views
7

私はここでHUGEを空白にしています。インデックスから行と列を取得するには?

私が見つけたことは、特定の行と列からインデックスを取得することですが、インデックスから行と列を取得するにはどうすればよいですか?

行が簡単です:(int)(index/width)

私の脳は大量の出血を経験していて、列を計算しようとしています。

私には恥があります。ゼロベースのインデックスについては

答えて

23

、二つの動作は以下のとおりです。

row = (int)(index/width) 
column = index % width 

私はCの男だので、私はここに%を使用していますと、お使いの言語を指定していないものの、それは確かに見えますCベースのもののようなものです。

あなたはwidthindexを分割するとき、あなたの質問ははCまたはその兄弟に関係ないない場合、それはモジュロ演算子があなたの特定の環境にあるものは何でもなり、残りが余っ。あなたははモジュロ演算子を持っていない場合は

、あなたが使用することができます。

row = (int)(index/width) 
column = index - (row * width) 
+0

くそーをあなたは右、私の命名法は混乱で、私も笑、今私は、可能な愚かな解決策を見つけ、行それを呼び出す:行= index - (col * width)もちろん、あなたのものは私が探していたものです、ありがとう! – Icebone1000

+0

私はxの位置を列とyの行と考えているので、これは後方です。 – CodyMace

+0

@CodyMace:そうですね、答えが間違っていることを明確にしました。しかし、あなたは正しいです。混乱を避けるために、OPが彼らに間違った方向を与えていると述べているので、問題を解決するために質問とこの答えの両方を整理しました。助けてくれてありがとう。 – paxdiablo

0

Paxdiabloの答えは正しいものです。誰かが、行と列からインデックスを取得するために逆のプロセスを必要とする場合:

index = (row * width) + column 
関連する問題