C/C++の宿題片付けます 127代目 at TECH
[2ch|▼Menu]
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