トップページ⇒tech
1001コメント301KB

★★Java質問・相談スレッド163★★

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2013/07/26(金) NY:AN:NY.AN
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    http://pc11.2ch.net/hp/
Webプログラミング http://pc11.2ch.net/php/
をご利用下さい。

よくある質問
・「コマンドまたはファイル名が違います」
 「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
 「Exception in thread "main" java.lang.NoClassDefFoundError: 」
 (p)ttp://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」

前スレッド
★★Java質問・相談スレッド162★★
http://toro.2ch.net/test/read.cgi/tech/1370777230/
0153デフォルトの名無しさん2013/08/01(木) NY:AN:NY.AN
>>152
早速ありがとうございます。
1.7の話です。

透明だろうが不透明だろうが、見え方は一緒ですねぇ。

うまく説明できないのですが・・
JPanelにJtextAreaが乗っている構成で、
GraphicsはJPanelにダブルバッファで書き込みをしています。

現象としては
JtextAreaの再描画(リペイント)をしない場合は
メイン画面再描画(draw)でJtextAreaが消える。

JtextAreaの再描画(リペイント)をする場合は
JtextAreaがチラチラチラチラする。

JtextAreaの絵が塗りつぶされているんだとは思うのですが・・。
0154デフォルトの名無しさん2013/08/01(木) NY:AN:NY.AN
1.7の透明色特有ではなさそうなので、知ってる人はもう少し書いたら
レスくれそうですね
リペイントってどんなサイクルだったかわすれましたが
invalidateこんなの呼んで再描画するんじゃなかったかな・・


>>114は解決しました
というかPCにステミキ入ってなかったORZ
音だせるやつのinfo情報
getName "ƒXƒeƒŒƒI ƒ~ƒLƒT[ (Realtek Hig"
getDescription"Direct Audio Device: DirectSound Capture"
toString interface TargetDataLine supporting 8 audio formats, and buffers of at least 32 bytesgetFormat PCM_SIGNED 8000.0 Hz, 16 bit, stereo, 4 bytes/frame, big-endian
結局PORTから音はとりだせなかったけど、ミキサーからはとれますた
0155デフォルトの名無しさん2013/08/01(木) NY:AN:NY.AN
読めないデバイスだと思ってたら文字化けしてたのか・・
貼ってから気が付くレベルの俺
0156デフォルトの名無しさん2013/08/01(木) NY:AN:NY.ANID:5J+mkZgJ!
なぜforループがDeadcodeになるのでしょうか?
import java.util.Scanner;

public class Test {

public static void main(String[] args){
Scanner in = new Scanner(System.in);

System.out.print("Max :");
String input = in.next();
int x = Integer.parseInt(input);

for (int i = 1; i <= x; i++){
if (1%2 == 0){
System.out.println(i);
} else {
continue;
}
}
}
}
0157デフォルトの名無しさん2013/08/01(木) NY:AN:NY.AN
if (1%2 == 0){

なにこれ
0158デフォルトの名無しさん2013/08/01(木) NY:AN:NY.AN
nextInt()は使えないのか?
0159デフォルトの名無しさん2013/08/02(金) NY:AN:NY.ANID:pU3LTo83!
>>157
二の倍数かどうかの判定をしたかったのですが。
>>158
countinueのかわりにnextInt()ということでしょうか?
0160デフォルトの名無しさん2013/08/02(金) NY:AN:NY.AN
ID出てるし釣りか
0161デフォルトの名無しさん2013/08/02(金) NY:AN:NY.AN
>Scanner
このクラスの存在、今日初めて知った
すごく便利そうなクラスだね
正規表現でのパースするとあるけど実装はネイティブコードとかでされてるのかな
それなら自分でJavaのコード書いてパースするより捗りそう
0162デフォルトの名無しさん2013/08/02(金) NY:AN:NY.AN
ジャバ8ではjre/binにもjjsがあるのですが、jreで配布は、ライノーはやらないけど、ナズホーンは配布することになったんですか?
0163デフォルトの名無しさん2013/08/02(金) NY:AN:NY.AN
はい
0164デフォルトの名無しさん2013/08/02(金) NY:AN:NY.AN
次はジャバFXもあるし、HTML5もあるし、リリース8の本命はラムダとかストリームではなく、実はナズホーンだったりするので、ランタイムに同梱は必然ですよね^^
0165デフォルトの名無しさん2013/08/02(金) NY:AN:NY.AN
まあNashornはブレークポイントが止まるようになるらしいからコールバックの実装はJavaScriptでってのはいいかもな
0166デフォルトの名無しさん2013/08/02(金) NY:AN:NY.AN
ごめん初歩的な質問なんだけど
eclipseってJavaをインストールしていないと
起動自体出来ない?
0167デフォルトの名無しさん2013/08/02(金) NY:AN:NY.AN
>>166

eclipseにも色々あって、
java(厳密にはJRE)を内包しているものは、PCにjavaが入っていなくても大丈夫。

内包していない奴は、PCのjavaで動くので
インストールが必要。
0168デフォルトの名無しさん2013/08/02(金) NY:AN:NY.AN
JavaFX8が楽しみだな〜。
0169デフォルトの名無しさん2013/08/02(金) NY:AN:NY.AN
http://mergedoc.sourceforge.jp/
JRE入りのインディゴがお勧め

異論は認める
0170デフォルトの名無しさん2013/08/02(金) NY:AN:NY.AN
個人的にはKeplerで良いと思う。
Junoで無駄に鍛えられたので感覚が麻痺しているという説もあるけど。

それとPleiadesとかAll-in-oneが許されるのは小学生まで。
とっかかりはともかく早めの卒業を推奨。
0171デフォルトの名無しさん2013/08/02(金) NY:AN:NY.AN
高級言語なのに手続きが物凄い量
0172デフォルトの名無しさん2013/08/02(金) NY:AN:NY.AN
全然quickstartじゃないんだよな
環境構築を覚えるまでが一番大変
覚えた後はさすがに楽なんだけど
0173デフォルトの名無しさん2013/08/03(土) NY:AN:NY.AN
>>171
例外処理と粒度の小さすぎるAPIが原因
0174デフォルトの名無しさん2013/08/03(土) NY:AN:NY.AN
最近は新しいAPIがチェック例外を敬遠しだしたな
まあ外部リソース依存の例外以外は個人的にやり過ぎだと思ってたが
0175デフォルトの名無しさん2013/08/03(土) NY:AN:NY.AN
script言語信者が元気ですね。
0176デフォルトの名無しさん2013/08/03(土) NY:AN:NY.AN
意識高い系(笑)のJavaドカのみんなが大好きなScalaもチェック例外は捨てたんですよ
0177デフォルトの名無しさん2013/08/03(土) NY:AN:NY.AN
チェック例外は手続き型に関数型を取り入れた最近流行りのスタイルでは全く使い物にならないんだよな
ラムダが難航してた大きな一因だし、結局は検査例外の存在を無視した仕様に決まってしまった
0178デフォルトの名無しさん2013/08/03(土) NY:AN:NY.AN
javaドカタはどうせcatchして無視するだけだから全部RuntimeExceptionにしとけばよかった
0179デフォルトの名無しさん2013/08/03(土) NY:AN:NY.AN
Javaやってるといかに日本人がサービス精神薄いというか、オープンソースにあまり向いていない?かが実感できる。
海外のフォーラム等のボランティア精神がまったく違うんだよね〜。
日本人は陰湿なコード(自分は端から端まで把握してはいるがそれをコードで表現していない)が大好きな人が多い。
妙な悦に浸っている。良い設計の本にはその辺りが書かれている気がする。
0180デフォルトの名無しさん2013/08/03(土) NY:AN:NY.AN
2種類以上のjavadocを統合って出来ますか?
あるパッケージのjavadocファイル群と別のパッケージのjavadocのファイル群が別々にあって
それと統合したいんです
01811802013/08/03(土) NY:AN:NY.AN
どちらもソースコードは無いのでソースコードから生成し直すってのは出来ないです
0182デフォルトの名無しさん2013/08/03(土) NY:AN:NY.AN
androidの話になっちゃうけど
例外をスローしないでスタックトレース出して終わりという
お粗末なandroid標準APIがあるよ

>>180
1.htmlを自分で編集する。互いにソースリンクがないなら超簡単
2.jadでシグニチャ取り出して自分でドキュメントコメント書いて・・・・
0183デフォルトの名無しさん2013/08/03(土) NY:AN:NY.AN
>>180
コアのAPIのサイトをリンク先にしたことあった気がしたけど、自前のサイトでもできるかな。Javadocのオプションで。
0184デフォルトの名無しさん2013/08/03(土) NY:AN:NY.AN
おはようございます。
7月から自学自習でjavaをしており
「解きながら学ぶjava入門編」という参考書を終え、ぼちぼち理解ができてきました。
次のステップアップのためのお勧めの参考書はなにかありますか?
どなたかお答えお願いします。
0185デフォルトの名無しさん2013/08/03(土) NY:AN:NY.AN
>>184
パーフェクトJava
0186デフォルトの名無しさん2013/08/03(土) NY:AN:NY.AN
勉強はもういいからモノ作れよ
GUIやるのは無駄だからやるならコンソールでDBアプリとかな
0187デフォルトの名無しさん2013/08/03(土) NY:AN:NY.AN
解くという考え方が既に間違っている
イメージを持って組み立てるものだ
0188デフォルトの名無しさん2013/08/03(土) NY:AN:NY.AN
Javaのチェック例外、俺はいいと思うけどな。
例外処理を考えてるときが一番勉強になってる気がする。
APIや他のオープンソースの設計見にいきたくなるし。
0189デフォルトの名無しさん2013/08/04(日) NY:AN:NY.AN
検査例外のアイデア自体が良いか悪いかはともかく、ラムダとの相性が絶望的に悪いのは事実
Java8で積極的にラムダを多用すればどうしてもRuntimeExceptionやthrows Exceptionだらけになるので
検査例外はほとんど意味がなくなるよ
そうならないように長いこと議論して対策考えてたんだけど結局特に対策はなし
0190デフォルトの名無しさん2013/08/04(日) NY:AN:NY.AN
質問があります。
ほとんど設定しなくてもいいのでJOptionPaneを使っているのですが、
このダイアログが表示されたときのコンポーネント(ボタン等)を個別に取得してサイズ等をを変更する方法が知りたいです。
機能はまったくいじるつもりは無く、内装を少し変えたいです。
0191デフォルトの名無しさん2013/08/04(日) NY:AN:NY.AN
次の質問どうぞ
0192デフォルトの名無しさん2013/08/05(月) NY:AN:NY.AN
class CLS {
public static void main(String[] args)
{
func1(1);
}
void func1(final int arg)
{
func2(arg);
}
voi func2(int arg)
{
arg = 9999;
}
}

上記のarg = 9999;のように、final引数→通常引数とわたされた変数は、通常引数の場所で変更可能ですか?
0193デフォルトの名無しさん2013/08/05(月) NY:AN:NY.AN
試せばわかるだろ死ね
0194デフォルトの名無しさん2013/08/05(月) NY:AN:NY.AN
>>192
渡されるのは値っす。
func2の変数argの値は変えることができる。
func2の変数argの値を変えてもfunc1の変数argの値は変わらない。
0195デフォルトの名無しさん2013/08/05(月) NY:AN:NY.AN
>>192
この例だと参照渡しでなくコピーなので変更可になるかな?引数がintでなくクラスの場合にはfanc2の宣言のところで、final変数を通常変数で渡してる、ってエラーがでそう
0196デフォルトの名無しさん2013/08/05(月) NY:AN:NY.AN
for(int i = 0 ; i < 10 ; i++){
system.out.println("i")
if(条件式){
i = 0;
}
}

このようにとある条件の時のみ変数iを戻したいのですけど
この書き方はよくない(一定で上がり続けるiを勝手に変更するのは御法度)
と指摘されました。
なにかほかに言い書き方はありますか?
0197デフォルトの名無しさん2013/08/05(月) NY:AN:NY.AN
はいはい、参照の値渡し参照の値渡し。
0198デフォルトの名無しさん2013/08/05(月) NY:AN:NY.AN
>>196
無限ループの原因になりがちというこそなら、forをbreakしてその外で戻せば(return?)問題ないんじゃない。
0199デフォルトの名無しさん2013/08/05(月) NY:AN:NY.AN
>>196
その条件をクリアするだけなら下みたいにラベル付きループとかも使えるけど
意図が分かりにくくて比較的バグの温床になりやすいコードってのはあんまし変わらんよ。

loop: while(true) {
  for(int i = 0 ; i < 10 ; i++){
    system.out.println("i")
    if(条件式){
      continue loop;
    }
  }
  break loop;
}

その部分をメソッドに抜き出して正常完了か異常終了したかを戻り値で返す、
異常終了なら再度そのメソッド呼び出すみたいにした方がいいんじゃね?
0200デフォルトの名無しさん2013/08/05(月) NY:AN:NY.AN
ビーンズの特定のプロパティ(複数指定可)のみ比較するライブラリってありませんか?
0201デフォルトの名無しさん2013/08/05(月) NY:AN:NY.AN
>>195
func1のfinalはfunc1の変数の書き換えを制限するもの。
func2の変数はfunc1の変数とは別のものなんでfunc2の変数を
書き換えてもfunc1の変数は変わらないっすよ。なのでたとえ参照型で
あってもエラーはでないっすよ。
0202デフォルトの名無しさん2013/08/05(月) NY:AN:NY.AN
>>196

int i = 0;
while (i < 10) {
  if (条件式) {
    // 処理
    i = 0;
  } else {
    // 処理
    i++;
  }
}

これなら誰が見ても意図は明らか
0203デフォルトの名無しさん2013/08/05(月) NY:AN:NY.AN
数字だけで構成されたString型のcodeという変数(例えば"02134")
をInteger型の配列に一文字ずつ格納したいんですが([0,2,1,3,4])
以下のようなコードを書いたのですけれど、もっとスマートな方法ありませんか?

Integer[] Q = new Integer[code.length()];
for(int i = 0;i<code.length();i++){
Q[i] = Integer.parseInt(String.valueOf(code.charAt(i)));
}

よろしくお願いします
0204デフォルトの名無しさん2013/08/06(火) NY:AN:NY.AN
>>201
まじっすか!すまぬ&ご指摘ありがとう!
0205デフォルトの名無しさん2013/08/06(火) NY:AN:NY.AN
>>203
文字コードが連続しているのを利用して

char[] charArray = code.toCharArray();
Integer[] Q = new Integer[charArray.length];
for (int i=0; i<charArray.length; i++) {
Q[i] = (int)charArray[i] - '0';
}
0206デフォルトの名無しさん2013/08/06(火) NY:AN:NY.AN
>>205
codeが2GBあると2GBのメモリーとコピー時間の無駄遣いだからtoCharArrayやめれ。
0207デフォルトの名無しさん2013/08/06(火) NY:AN:NY.AN
>>203
Characterクラスのstaticメソッドにcharを数にする適当なものがあったはず。
02082052013/08/06(火) NY:AN:NY.AN
Character.digit(code.charAt(i), 10);

これの方がいいな
0209靖国参拝、皇族、国旗国歌、神社神道を異常に嫌うカルト教団2013/08/06(火) NY:AN:NY.AN
★マインドコントロールの手法★

・沢山の人が偏った意見を一貫して支持する
 偏った意見でも、集団の中でその意見が信じられていれば、自分の考え方は間違っているのか、等と思わせる手法

・不利な質問をさせなくしたり、不利な質問には答えない、スルーする
 誰にも質問や反論をさせないことにより、誰もが皆、疑いなど無いんだと信じ込ませる手法


↑マスコミや、カルトのネット工作員がやっていること

TVなどが、偏った思想や考え方に染まっているフリや常識が通じないフリをする人間をよく出演させるのは、
カルトよりキチガイに見える人たちを作ることで批判の矛先をカルトから逸らすことが目的。

リアルでもネットでも、偽装左翼は自分たちの主張に理がないことをわかっているのでまともに議論をしようとしないのが特徴。
0210デフォルトの名無しさん2013/08/06(火) NY:AN:NY.AN
2GBもあるわけないだろ馬鹿か
0211デフォルトの名無しさん2013/08/06(火) NY:AN:NY.AN
たとえ2Bだろうと丸々無駄コピーなんだから一緒。
0212デフォルトの名無しさん2013/08/06(火) NY:AN:NY.AN
java使っといて無駄もくそもないわー
0213デフォルトの名無しさん2013/08/06(火) NY:AN:NY.AN
>>212
もっとスマートな煽りでお願いします
0214デフォルトの名無しさん2013/08/06(火) NY:AN:NY.AN
まじめな話ジャバ使っといて効率とか速さっていう奴は馬鹿でしょ
0215デフォルトの名無しさん2013/08/06(火) NY:AN:NY.AN
低速な環境こそ、チマチマした効率の追求に意味がある。
デスクトップPC用のGUIアプリで、
Cを使っといてインラインアセンブラを使うとかいう方がどうかしている。
0216デフォルトの名無しさん2013/08/06(火) NY:AN:NY.AN
インラインアセンブラ使ってない環境で効率とか速さとか言う奴は馬鹿でしょ
0217デフォルトの名無しさん2013/08/06(火) NY:AN:NY.AN
Javaでもうまく作れば普通に書いたCよりは速いこともあるよ
どうしてもFORTRANみたいな糞コードになるけどw
0218片山博文MZパンク ◆0lBZNi.Q7evd 2013/08/06(火) NY:AN:NY.AN
GCJすごいな。実行ファイル作れるんだ
0219デフォルトの名無しさん2013/08/07(水) NY:AN:NY.AN
GCJってもう終わってるんじゃね?
0220デフォルトの名無しさん2013/08/07(水) NY:AN:NY.AN
>>219
どこが?
0221デフォルトの名無しさん2013/08/07(水) NY:AN:NY.AN
これを見てそう思っただけだよ
ttp://gcc.gnu.org/java/
0222デフォルトの名無しさん2013/08/07(水) NY:AN:NY.AN
javaのGUIプログラムを勉強中です
frameとpanelの2種類あると思いますがpanelを使う意味ってあるのですか?
webページを見ていたらpanelはオブジェクトのおくところと書かれてますが、
べつにframeにもlabelやら貼れますよね?
勉強期間はまだ短くてよくわかってませんが、どなたかpanelのあるとないとの
違いを教えてくれませんか?
0223デフォルトの名無しさん2013/08/07(水) NY:AN:NY.AN
>>217
Javaっぽい記述ではなくなるけど強引に速くなりやすいように書けるのかな。
興味あります。
0224デフォルトの名無しさん2013/08/07(水) NY:AN:NY.AN
なるわけないだろ。たまたまその時速かったとかだろ
0225デフォルトの名無しさん2013/08/07(水) NY:AN:NY.AN
実行時にコンパイルし直したりするからサーバサイドならC++より早いが触れ込み
まあサーバサイドのボトルネックは9割方がデータベース(≒Disc I/O)なんだけど
0226デフォルトの名無しさん2013/08/07(水) NY:AN:NY.AN
>>222
panelは無地の板
複雑なレイアウトを行ったり関連する部品をまとめたりするために使う
0227デフォルトの名無しさん2013/08/07(水) NY:AN:NY.AN
InputStreamのデータをOutputStreamに高速に転送する方法が知りたいです。
現在はこのように単純に転送しています。

int length;
while((length=input.read(buf))!=-1){
output.write(buf,0,length);
}

しかしこの方法だとreadとwriteが同時に行えないため、
readとwriteを同時に行って欲しい状況だとパフォーマンスが半減してしまいます。
マルチスレッドでも構いません。
0228デフォルトの名無しさん2013/08/07(水) NY:AN:NY.AN
チューニングのためにjni使ってるプログラムに素のjavaが勝つなんてことは
下手くそが書いたプログラムとかでないかぎりあり得ない
0229デフォルトの名無しさん2013/08/07(水) NY:AN:NY.AN
>>227
無理。というか read と write を同時には行えないよ普通。
read と write を交互にやるのをユーティリティメソッド内に閉じ込めるとかはできるけど。

高速転送に関して言えばファイル限定で
java.nio.channels.FileChannel の transferTo とか transfetFrom とかがある。
これは java の配列を介さずに転送するため javaの配列を介するより高速化する、
とされているもので内部では read と write を交互に行ってる。
あと必ず高速化できるとは限らない事に注意。
0230デフォルトの名無しさん2013/08/07(水) NY:AN:NY.AN
>>228
下手くそはごまんといる。たぶんオマエもその一人。
02312272013/08/07(水) NY:AN:NY.AN
>>229
ファイルではないのでFileChannelが使えなくて困ってます

> read と write を同時には行えないよ普通。
マルチスレッドで、readで一定数読み込んだものを次々とバッファに貯めていき、
並行してwriteはバッファから取り出して書き込むという流れではどうでしょうか?
02322272013/08/07(水) NY:AN:NY.AN
情報を具体的に開示します。

HDDが二台あり、片方のドライブからもう片方のドライブにコピーするとします。
どちらも読み込みと書き込みが50MB/sで行える場合、
理論上は50MB/sで読み込みをしながら、
それと同時に50MB/sで書き込みを行えるはずです。

しかし>>227のコードでは読み込んでいる間は書き込みが停止するので、速度は明らかに低下します。
単純なファイルのコピーならFileChannelが使えますが、
今回はFTPなどのプロトコルを介するためStreamしか使えないという条件です。

どうしましょう。
0233デフォルトの名無しさん2013/08/07(水) NY:AN:NY.AN
>マルチスレッドでも構いません
最初から答えが出ているようなものだが
02342272013/08/07(水) NY:AN:NY.AN
>>233
マルチスレッドの場合は読み込んだデータを一時的に保持しておくバッファを
どのように実装するかが問題になります。
最初はByteArrayOutputStreamを使おうと考えましたが、
ByteArrayOutputStreamのtoByteArrayは内部配列のコピーを行うため非効率とのことです。

そうなると一体どのようにバッファを保持するべきなのかわからず、質問させていただきました。
0235デフォルトの名無しさん2013/08/07(水) NY:AN:NY.AN
きゅーうえうえじゃなかった、Queueを使えばいいじゃない
Queue<byte[]>とかQueue<ByteBuffer>とかでスレッドで同期させる
0236デフォルトの名無しさん2013/08/07(水) NY:AN:NY.AN
そういやパイプストリームとかいうそのためのソリューションがあったな
使ったこと無いから詳しくないが
0237デフォルトの名無しさん2013/08/07(水) NY:AN:NY.AN
>>217
間違っている。javaっぽくポリモーフィズム使いまくりでだとC/C++よりも倍近く早い。
算術演算や配列処理などの組み合わせでゴリゴリ糞コード書いている限りC/C++よりも倍近く遅い。
java1.7では1.6よりも1.5倍ほど速度改善しており、
ループの回数が多くなるとどんどん速度アップするので動的に最適化していると思われる。
02382272013/08/08(木) NY:AN:NY.AN
どれも一筋縄では行かなそうですね。
諦めてC++で実装したところ理論値に近いパフォーマンスが出たのでこれで回答は締め切らせて頂きます。

Java…(笑)
02392272013/08/08(木) NY:AN:NY.AN
>>235さんの方法で実装したらC++と全く同じ理論値そのままのパフォーマンスが出ました。
0240デフォルトの名無しさん2013/08/08(木) NY:AN:NY.AN
IOが障害になってるならいくらドカタ専用言語javaでも遅いはずないだろ
0241デフォルトの名無しさん2013/08/08(木) NY:AN:NY.AN
読み込んでいる内容を読み込んだ脇から書き出していくのか
全く想像もつかない処理だは
0242デフォルトの名無しさん2013/08/08(木) NY:AN:NY.AN
入力したキーがリアルタイムで送信されるチャットシステムとかかな
0243デフォルトの名無しさん2013/08/08(木) NY:AN:NY.AN
てst
0244デフォルトの名無しさん2013/08/08(木) NY:AN:NY.AN
ここまでデータ圧縮の話なし。
0245デフォルトの名無しさん2013/08/08(木) NY:AN:NY.AN
1 → 1B
12 → 12B
123 → 123B
1234 → 1.23KB
12345 → 12.3KB
123456 → 123KB
1234567 → 1.23MB
12345678 → 12.3MB

みたいな感じで整数を3ケタくらいの大きさ単位を含む数字に変換するクラスとかメソッドってある?
0246デフォルトの名無しさん2013/08/08(木) NY:AN:NY.AN
intの8ビットをそれぞれフラグとして使いたいのですが、ネットで調べてもどうしても理解できません。
int flgInts = 0; に
01010101 というフラグを設定して、
boolean[] flgBooleans = new boolean[8]; にそれぞれフラグを代入するにはどうすればいいでしょうか。
0247デフォルトの名無しさん2013/08/08(木) NY:AN:NY.AN
flgBooleans[0] = flgInts & 0x1 > 0
flgBooleans[1] = flgInts & 0x2 > 0
flgBooleans[2] = flgInts & 0x4 > 0
flgBooleans[3] = flgInts & 0x8 > 0
flgBooleans[4] = flgInts & 0x10> 0
flgBooleans[5] = flgInts & 0x20 > 0
flgBooleans[6] = flgInts & 0x40 > 0
flgBooleans[7] = flgInts & 0x80 > 0
0248デフォルトの名無しさん2013/08/08(木) NY:AN:NY.AN
>>245
そんなもん5分で書ける
それ丸めかたとか1024単位or1000単位とかアプリの要件によって様々だから
標準で用意されてても意味ない
0249デフォルトの名無しさん2013/08/08(木) NY:AN:NY.AN
5分で書けるとか天才か
0250デフォルトの名無しさん2013/08/08(木) NY:AN:NY.AN
一心不乱にタイプでもするのだろうか
0251デフォルトの名無しさん2013/08/08(木) NY:AN:NY.AN
>>247
下位4ビットまでは、0x01、0x02、0x04、0x08と乗算なのに
4ビット→5ビットで0x08→0x10と乗算でないのは、なぜなのでしょうか?
0252デフォルトの名無しさん2013/08/08(木) NY:AN:NY.AN
0x8 * 2 → 0x10
■ このスレッドは過去ログ倉庫に格納されています