2008-01-01から1年間の記事一覧

間違えやすい(実際間違えた)のでメモ。 public class Test { public static void main(String[] args) { int a = 2, b = 3; float c = a / b; System.out.println(c); } } この出力結果は、 0.0 となるので注意。

Qt のパスについて (Windows)

Qt

以前までは、「Qt 4.4.1 Command Prompt」を起動してから Qt をいじっていたのだが、 ちゃんとパスを通してから作業することにしようと思い、環境変数 PATH に C:\Qt\4.4.1\bin へのパスを通してみた。 しかし、Cygwin から Qt をコンパイルをしようとしたと…

C言語のシフトについて

C

シフト演算子 ">>" は算術シフトなのか?それとも論理シフトなのか? という疑問がふと沸いたので調べてみた。 #include<stdio.h> int main(void) { int si = -1; unsigned int ui = -1; printf("%d\n", si); printf("%u\n", ui); printf("%d\n", si >> 31); printf("</stdio.h>…

継承について

自分があやふやなところを確認 public class ExtendsTest { public static void main(String[] args) { Hoge hoge0 = new Hoge(); // ←できない Hoge hoge = new Piyo(); Piyo piyo = new Piyo(); hogeMethod(hoge); // ←できない hogeMethod(piyo); // ←で…

キャストによるオーバーヘッドを計測してみた

public class CastTest { public static void main(String[] args) { long start, end; start = end = 0; double d; float f; // キャストなし start = System.currentTimeMillis(); for(int i = 0; i < 0x5000000; i++) { d = Math.sin(Math.toRadians(i));…

Javaで学ぶ3D のソースコードを修正。 ・修正前 int l = Math.abs((int)(v2.y - v1.y)) + 1; ・修正後 int l = Math.abs((int)(v2.y - v1.y)); if(l == 0) l++; これで、シルエットラインバッファに1ピクセル分の空白ができるバグが直る。 (これが何に起因…

コマンドの前に '\' (バックスラッシュ) を付けると、エイリアスが無視される。

イテレータ

C++

の使い方。 for (vector<int>::iterator i = vec.begin(); i != vec.end(); i++) { *i = 7; } 各要素はポインタのように扱えばおk。 参考: STL超入門</int>

pre記法のスタイルシートを編集

長い文のはみ出しを防止して、行間のスペースをちょっと狭めた。 pre { overflow: auto; line-height: 105%; } 参考: http://q.hatena.ne.jp/1142749431 http://hxxk.jp/2005/12/15/2150 http://q.hatena.ne.jp/1091134915

Eclipse設定

いじったことを忘れてもいいようにメモ (※バージョンが違うと、設定の仕方もいろいろ違ってくるので注意。) 行番号を表示 一般 → エディタ → テキスト・エディター → 行番号を表示にチェック エディタのフォントをMSゴシックにする 一般 → 外観 → 色とフォ…

vector の使い方基礎

C++

vector で動的配列を扱うことができる。 #include <iostream> #include <vector> using namespace std; int main(void) { // 大きさ 3 の動的配列を作る vector<int> vec(3, 0); // 大きさ 5 にリサイズし、増えた分に 3 を入れる vec.resize(5, 3); // リストの最後に 7 をプッシュ</int></vector></iostream>…

C++の数字と文字列の変換操作

C++

あとからサッと確認するための、ごくシンプルなコードを記載。 その1 - 数字を文字列に変換 #include <iostream> #include <string> #define SIZE(arg) (sizeof(arg) / sizeof(arg[0])) using namespace std; int main(void) { string str = ""; int x[] = {11, 22, 33, 44, 5</string></iostream>…

w3m-emacs のショートカットメモ

最低限必要なこと 機能キー URLを開くg 戻るB 進むN リンクのジャンプRET 知っておくと便利なこと 機能キー 下方向にスクロールSpace 上方向にスクロールDelete 次のアンカーへ飛ぶTAB 前のアンカーへ飛ぶShift+TAB ホームへ飛ぶ ※H ブックマークを追加a ブ…

VMWare Tools を最新のやつに更新したら、 ホストとゲストの間でクリップボードが共有されるようになった。 ゲストからホストへの、ファイルのドラッグ&ドロップが可能になった。(ホストからゲストへはできない) 「ゲストで CapsLock キーを押すと、ホスト…

XShm を含めたコンパイルをするには (@Ubuntu)

X11プログラミングにてシェアードメモリを使ったときのメモ。 Synaptic で libxt-dev とlibxaw をインストールする。(libxaw は冗長かもしれない。) gcc のコンパイルオプションに -lXext を追加する。 Qtとか入れるときもXShmは必要になったりするっぽい…

C言語メモ

C

「独習C」から印象的だったものを。 #include <stdio.h> #include <ctype.h> void string_up(char *p); int main(void) { char str[] = "This is a test."; string_up(str); printf(str); return 0; } void string_up(char *p) { while (*p) { *p = toupper(*p); p++; } } こ</ctype.h></stdio.h>…

C言語メモ

C

ポインタには、加減算しかできない。 (乗除算はできない) *p++; // ポインタそれ自体がインクリメント (*p)++; // ポインタの指すものがインクリメント

Qt で Windows アプリケーションを作成

Qt 4.4.1 Open Source 版での話。 まず Qt 4.4.1 Command Prompt を起動。ソースコードのあるディレクトリに移動し、 qmake -project で pro ファイルを作成。続いて、 qmake で MakeFile を作成する。最後に、 make release で、release ディレクトリの下に…

RPMパッケージの再インストール

VMwareの作業ディレクトリを変更するために新しくバーチャルマシンを作成したら VMware Toolsが正常に動作しなくなった。 その復旧方法。 まず、 $ su - で root 権限に入り、 # rpm -qa | grep VM と打ち込むと、 VMwareTools-7240-59824 と表示され、VMwar…

Qtインストールメモ

基本的にはここの作業手順でおk。 うち(Fedora Core 8)の環境では make の完了後に、 # make install した後に、/etc/profile あるいは ~/.bashrc を開いて、 PATH=$PATH:/usr/local/Trolltech/Qt-4.4.0/bin/ export PATH と記述をするなど、何故か自分で…

Virtual PC 2007 の環境を VMWare に移行する

VMWare からそのままインポートすることもできるらしいが、自分の環境ではうまくいかなかった。 その解決方法。 まず、仮想マシンハードディスクイメージ変換ツール「NHC」を使って、 VirtualPC のディスクイメージ(.vhd)をVMWareのディスクイメージ(.vmd…