メイン コーダーズルーム【スクリプト系】
ビット単位演算 ARGB | 投稿するにはまず登録を |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
| 投稿者 | スレッド |
|---|---|
| 永井勝則 | Åê¹ÆNo.23081 投稿日時: 2006-1-24 14:54 |
職人 ![]() ![]() 居住地: 白馬村 投稿: 796
使用環境:
Windows 7 :Flash CS4: 10.6.8 :Flash CS5.5 |
ビット単位演算 ARGB 先の進数変換についてと類似した質問です。
macromediaのFlash Articleに ビット単位演算子を使ったビットとカラーの操作 というのがあって、そこで以下のスクリプトが書かれています。 記事によるとこのスクリプトの出力は Alpha:FF000000 Red:C90000 Green:7B00 Blue:33 になると書かれていますが、当方での出力は、 Alpha: -1000000 Red: c90000 Green: 7b00 Green: 33、 と、AlphaはFFになりません。 この-1とは一体どういうこと? で何を意味しているのでしょう?
|
| ひろゆき | Åê¹ÆNo.23084 投稿日時: 2006-1-24 16:27 |
ちょんまげら ![]() ![]() 居住地: 東京砂漠 投稿: 4403
使用環境:
10.8.5 Flash Professional CS4/CS6/CCSafari 6.1 |
Re: ビット単位演算 ARGB ちょっと試してみました。
var argb:Number = 0x7FC97B33; だと、 Alpha:7f000000 Red:c90000 Green:7b00 Blue:33 と出力されますが、 var argb:Number = 0x80C97B33; だと、 Alpha:-(0000000 Red:c90000 Green:7b00 Blue:33 と出力されます! そして、 var argb:Number = 0x81C97B33; だと、 Alpha:-7f000000 Red:c90000 Green:7b00 Blue:33 と出力されます!
|
| 野中文雄 | Åê¹ÆNo.23092 投稿日時: 2006-1-24 18:42 |
ちょんまげら ![]() ![]() 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: ビット単位演算 ARGB 桁が足りないようですね。(^^;
ARGBで32ビットあればよさそうに思えますが、正負の記号が先頭のビットを使っています。したがって、アルファの部分を考えると、+7Fの01111111のつぎは先頭のビットが立ってマイナスと評価されてしまうのでしょう。 無理矢理アルファ値を文字列出力しようとすれば、こんな感じでしょうか。 |
| 永井勝則 | Åê¹ÆNo.23093 投稿日時: 2006-1-24 19:44 |
職人 ![]() ![]() 居住地: 白馬村 投稿: 796
使用環境:
Windows 7 :Flash CS4: 10.6.8 :Flash CS5.5 |
Re: ビット単位演算 ARGB 検証ありがとうございます。
何やら詳細はよくわかりませんが、7Fまでは数えられるが、それより大きくなるとおかしくなる、ということかと理解しました。 Flash Playerの不具合なのでしょうかねぇ。 ともあれありがとうございました。
|
| 野中文雄 | Åê¹ÆNo.23094 投稿日時: 2006-1-24 20:59 |
ちょんまげら ![]() ![]() 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: ビット単位演算 ARGB アルファが7桁しかないことに、ご注目ください。残された先頭のビットは正負の符号として扱われ、1はマイナスとなります。
引用: 野中文雄は書きました: 引用: 永井勝則さんは書きました: 32ビット符号付き整数として処理されるのは、JavaScriptも同じようですね。仕様というべきなのかもしれません。 引用: Flash Playerの不具合なのでしょうかねぇ。 以下の[出力]結果を検討されるといかがでしょう。 // [出力]: val,7f,1111111 i,-80,-10000000 val,-80,-10000000 i,-70,-1110000 val,-70,-1110000 i,-60,-1100000 val,-60,-1100000 i,-50,-1010000 val,-50,-1010000 i,-40,-1000000 val,-40,-1000000 i,-30,-110000 val,-30,-110000 i,-20,-100000 val,-20,-100000 i,-10,-10000 val,-10,-10000 |
| 永井勝則 | Åê¹ÆNo.23114 投稿日時: 2006-1-25 16:51 |
職人 ![]() ![]() 居住地: 白馬村 投稿: 796
使用環境:
Windows 7 :Flash CS4: 10.6.8 :Flash CS5.5 |
Re: ビット単位演算 ARGB 先生、わかりません。
最初の出力 val,7f,1111111 は、ここまでは正常に動作する、ということかと思います。 その後から分かりません。 val += 0x01000000; のvalを出力すると、2147483648となります。 この10桁の数値の意味、加算している意味すら分かりません。 その後のfor以下は、さっぱり分かりません。 分からないので、1行ずつ日本語解説を入れていただけると非常にありがたいです。
|
| 野中文雄 | Åê¹ÆNo.23115 投稿日時: 2006-1-25 17:32 |
ちょんまげら ![]() ![]() 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: ビット単位演算 ARGB
|
| raiha | Åê¹ÆNo.23144 投稿日時: 2006-1-26 9:34 |
新米 ![]() ![]() 居住地: 投稿: 14
使用環境:
WinXP,Flash MX2004 Pro |
Re: ビット単位演算 ARGB こんにちわ。
誤記だと思いますが、 0x80 = 10000000 です |
| 野中文雄 | Åê¹ÆNo.23145 投稿日時: 2006-1-26 9:57 |
ちょんまげら ![]() ![]() 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: ビット単位演算 ARGB
|
| 永井勝則 | Åê¹ÆNo.23163 投稿日時: 2006-1-27 11:00 |
職人 ![]() ![]() 居住地: 白馬村 投稿: 796
使用環境:
Windows 7 :Flash CS4: 10.6.8 :Flash CS5.5 |
Re: ビット単位演算 ARGB 一意専心、焼尽いや精進します。
|
| (1) 2 » | |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
| 投稿するにはまず登録を | |



ログイン


Windows 7 :Flash CS4:
10.6.8 :Flash CS5.5


Flash Professional CS4/CS6/CC





そりゃ、そうですよね。桁が繰上がるんですから。訂正しました。