エントリー記事メニュー
- 情報処理 2進数と8進数と16進数の変換 (09/09)
- 情報処理 2進数と10進数の変換 (09/05)
- Win32 API 文字列をフォントを変えて表示する (11/02)
- Win32 API ウィンドウのクライアント領域のサイズを取得する (10/29)
- Win32 API 文字列に色をつけて表示する (10/22)
- Win32 API 文字列を表示する (10/19)
2011.09.09 Friday
情報処理 2進数と8進数と16進数の変換
■2進数と8進数と16進数の対応表を書いてしまう
■2進数「01110101」を16進数に変換する
参考:十六進法 - Wikipedia
| 2進数 | 8進数 | 16進数 |
| 0001 | 1 | 1 |
| 0010 | 2 | 2 |
| 0011 | 3 | 3 |
| 0100 | 4 | 4 |
| 0101 | 5 | 5 |
| 0110 | 6 | 6 |
| 0111 | 7 | 7 |
| 1000 | 10 | 8 |
| 1001 | 11 | 9 |
| 1010 | 12 | A(10) |
| 1011 | 13 | B(11) |
| 1100 | 14 | C(12) |
| 1101 | 15 | D(13) |
| 1110 | 16 | E(14) |
| 1111 | 17 | F(15) |
■2進数「01110101」を16進数に変換する
16進数は4桁に、8進数は3桁に区切って対応させる。桁がないところはゼロで埋める。
0111(=7) | 0101(=5)
2進数「01110101」を16進数で表現すると、75
001(=1) | 110(=6) | 101(=5)
2進数「01110101」を8進数で表現すると、165
参考:十六進法 - Wikipedia
2011.09.05 Monday
情報処理 2進数と10進数の変換
■2進数「1011.101」を10進数に変換する
■10進数「11.625」を2進数に変換する
参考:コンピュータの数値表現 - Wikipedia、二進法 - Wikipedia
桁ごとに重み付けをする。
1×(2の3乗) + 0×(2の2乗) + 1×(2の1乗) + 1×(2の0乗) . 1×(2の-1乗) + 0×(2の-2乗) + 1×(2の-3乗)
1×8 + 0×4 + 1×2 + 1×1 . 1×1/2 + 0×1/4 + 1×1/8
8 + 0 + 2 + 1 . 0.5 + 0 + 0.125
2進数「1011.101」を10進数で表現すると、11.625
■10進数「11.625」を2進数に変換する
整数(11)と少数(0.625)に分ける。少数の計算で永久にループする場合もある。
整数・・・商がゼロになるまで2で割る。余りを下から並べる
11 ÷ 2 = 5 余り 1
5 ÷ 2 = 2 余り 1
2 ÷ 2 = 1 余り 0
1 ÷ 2 = 0 余り 1 ↑こちらから並べる
よって、1011
小数・・・積の小数がゼロになるまで2を掛ける(積の小数だけを引き継ぐ)。積の整数を上から並べる。
0.625 × 2 = 1.25 ↓こちらから並べる
0.25 × 2 = 0.5
0.5 × 2 = 1.0
よって、101
10進数「11.625」を2進数で表現すると、1011.101
参考:コンピュータの数値表現 - Wikipedia、二進法 - Wikipedia
2010.11.02 Tuesday
Win32 API 文字列をフォントを変えて表示する
フォントの種類はHG創英角ポップ体、高さ18、斜体で文字列を表示する。
■CreateFont関数を使ってフォントを作り表示
ウィンドウプロシージャから抜粋。引数のウィンドウハンドルは、hWnd。
■CreateFont関数を使ってフォントを作り表示
ウィンドウプロシージャから抜粋。引数のウィンドウハンドルは、hWnd。
//変数宣言
HDC hdc;
PAINTSTRUCT ps;
static HFONT hFont;
LPCTSTR lpszStr = TEXT("JUGEMへようこそ!");
・・・
(途中省略)
・・・
//WM_CREATEメッセージ
case WM_CREATE:
//フォント作成
hFont = CreateFont(18,0,0,0,FW_DONTCARE,
TRUE,FALSE,FALSE,
SHIFTJIS_CHARSET,
OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,DEFAULT_PITCH | FF_DONTCARE,
TEXT("HG創英角ポップ体"));
break;
//WM_PAINTメッセージ
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
//フォント選択
SelectObject(hdc, hFont);
TextOut(hdc, 10, 10, lpszStr, lstrlen(lpszStr));
EndPaint(hWnd, &ps);
break;
//WM_DESTROYメッセージ
case WM_DESTROY:
//フォントの削除
DeleteObject(hFont);
PostQuitMessage(0);
break;
2010.10.29 Friday
Win32 API ウィンドウのクライアント領域のサイズを取得する
ウィンドウのクライアント領域のサイズを表示する。
■GetClientRect関数を使って表示
ウィンドウプロシージャから抜粋。引数のウィンドウハンドルは、hWnd。
■GetClientRect関数を使って表示
ウィンドウプロシージャから抜粋。引数のウィンドウハンドルは、hWnd。
//変数宣言
HDC hdc;
PAINTSTRUCT ps;
RECT rc;
TCHAR szBuff[256];
・・・
(途中省略)
・・・
//WM_PAINTメッセージ
case WM_PAINT:
GetClientRect(hWnd, &rc);
hdc = BeginPaint(hWnd, &ps);
wsprintf(szBuff, TEXT("幅が%d、高さが%dです"), rc.right, rc.bottom);
TextOut(hdc, 10, 10, szBuff, lstrlen(szBuff));
EndPaint(hWnd, &ps);
break;
2010.10.22 Friday
Win32 API 文字列に色をつけて表示する
ウィンドウのクライアント領域に、x座標50でy座標10の位置に文字列を赤色で表示する。
■SetTextColor関数を使って文字に色をつけて表示
ウィンドウプロシージャから抜粋。引数のウィンドウハンドルは、hWnd。
■SetTextColor関数を使って文字に色をつけて表示
ウィンドウプロシージャから抜粋。引数のウィンドウハンドルは、hWnd。
//変数宣言
HDC hdc;
PAINTSTRUCT ps;
LPCTSTR lpszStr = TEXT("赤い文字でJUGEMへようこそ!");
・・・
(途中省略)
・・・
//WM_PAINTメッセージ
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
SetTextColor(hdc, RGB(255,0,0));
TextOut(hdc, 50, 10, lpszStr, lstrlen(lpszStr));
EndPaint(hWnd, &ps);
break;
2010.10.19 Tuesday
Win32 API 文字列を表示する
ウィンドウのクライアント領域に、x座標50でy座標10の位置に文字列を表示する。
■BeginPaint関数を使ってデバイスコンテキストを取得して表示
ウィンドウプロシージャから抜粋。引数のウィンドウハンドルは、hWnd。
■BeginPaint関数を使ってデバイスコンテキストを取得して表示
ウィンドウプロシージャから抜粋。引数のウィンドウハンドルは、hWnd。
//変数宣言
HDC hdc;
PAINTSTRUCT ps;
LPCTSTR lpszStr = TEXT("JUGEMへようこそ!");
・・・
(途中省略)
・・・
//WM_PAINTメッセージ
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
TextOut(hdc, 50, 10, lpszStr, lstrlen(lpszStr));
EndPaint(hWnd, &ps);
break;







