C/C++の宿題片付けます 127代目
at TECH
68:デフォルトの名無しさん
09/06/09 16:25:57
>>051 unionを使った暗号化と複合化。
#include <stdio.h>
short encode(short);
main()
{
int n, m, k;
while (1) {
printf("整数を入力して下さい(終了は0) = ");
if(scanf("%d", &n) != 1) { scanf("%*s"); continue; }
if (n == 0) break;
m = encode(n); /* 暗号化 */
printf("\n\t%d を暗号化すると %d になります。\n", n, m);
printf("\n\t0x%04hx を暗号化すると 0x%04hx になります。\n", n, m);
k = encode(m); /* 復号化 */
printf("\n\t0x%04hx を復号化すると 0x%04hx になります。\n", m, k);
printf("\n\t%d を復号化すると %d になります。\n\n", m, k);
}
}
short encode(short data) {
union {
short sdata;
struct {
char cdata1, cdata2;
} c;
} u;
char tmp;
u.sdata = data;
tmp = u.c.cdata1, u.c.cdata1 = u.c.cdata2, u.c.cdata2 = tmp;
return u.sdata;
}
次ページ続きを表示1を表示最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5136日前に更新/29 KB
担当:undef