Top > develop > UTF-8ひらがなカタカナ文字列考察C > C++

殆どというか、Cでしか書いていないのはご愛嬌でw
実行環境はCentOS5のコンパイル環境。文字コード設定はもちろんUTF-8
「ヴ」から「ヶ」はCP932(Windows XP)ひらがなで入力が出来ないので対象外。

source カタカナ

#include <string>
#include <iostream>

int main()
{
  char kanaa[] = "あい";
  char hiragana[] = "ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん   ゝゞ";
  char katakana[] = "ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶヽヾ";

  int i,j;

  printf("sizeof(char): %d\n", (int)sizeof(char));
  printf("sizeof(unsigned char): %d\n", (int)sizeof(unsigned char));
  printf("sizeof(short int): %d\n", (int)sizeof(short int));
  printf("sizeof(unsigned short int): %d\n", (int)sizeof(unsigned short int));
  printf("sizeof(int): %d\n", (int)sizeof(int));
  printf("sizeof(unsigned int): %d\n", (int)sizeof(unsigned int));
  printf("sizeof(long int): %d\n", (int)sizeof(long int));
  printf("sizeof(unsigned long int): %d\n", (int)sizeof(unsigned long int));
  printf("sizeof(long long int): %d\n", (int)sizeof(long long int));
  printf("sizeof(unsigned long long int): %d\n", (int)sizeof(unsigned long long int));
  printf("sizeof(float): %d\n", (int)sizeof(float));
  //  printf("sizeof(unsigned float): %d\n", (int)sizeof(unsigned float));
  printf("sizeof(double): %d\n", (int)sizeof(double));
  //  printf("sizeof(unsigned double): %d\n", (int)sizeof(unsigned double));

  printf("sizeof \"%s\": %d\n", (char*) &kanaa, (int) sizeof(kanaa));
  for( i=0 ; i<= (int) sizeof(kanaa) ; i++){
    printf(" , %2x", kanaa[i]);
  }
  printf("\n\n");

  printf("%s\n", (char*) &hiragana);
  printf("%s\n", (char*) &katakana);

  if( (int)sizeof(hiragana) == (int)sizeof(katakana)){
    for( i=0 ; i< (int)sizeof(hiragana) ; i+=3){
      printf("\"%c%c%c\" - \"%c%c%c\" = ",
             hiragana[i],
             hiragana[i+1],
             hiragana[i+2],
             katakana[i],
             katakana[i+1],
             katakana[i+2]);
      for( j=0 ; j<=2 ; j++){
        printf(" %2x ,", katakana[i+j] - hiragana[i+j] );
      }
      printf("\n");
      for(j=0 ; j<=1 ; j++){
        printf("%d\n",j);
        if(j==0){
          if(katakana[i+j] != (char)0xe3){
            printf("not top 1 byte was 0xe3!\n");
            break;
          }
        }
        if(j==1){
          printf("in 2 byte.\n");
          if(katakana[i+j] == (char)0x82){
            printf("katakana[i+j+1] & 0xe0(11100000) : hex: %2x, int: %u\n",
                   (char)katakana[i+j+1] & (char)0xe0,
                   (char)katakana[i+j+1] & (char)0xe0);
            printf("katakana[i+j+1] >> 5 : hex: %2x, int: %u\n",
                   katakana[i+j+1] >> 5,
                   katakana[i+j+1] >> 5);
            if( (katakana[i+j+1] & (char)0xe0) == (char)0xa0 &&
                katakana[i+j+1] != (char)0xa0){
              // in [ァ]-[タ]
              printf("1: [ァ]-[タ] : %c%c%c ->char[2]-1 char[3] ^ 0x20 = %c%c%c\n\n",
                     katakana[i],
                     katakana[i+1],
                     katakana[i+2],
                     katakana[i],
                     katakana[i+1] - 1,
                     katakana[i+2] ^ 0x20);
            }
          }
          if(katakana[i+j] == (char)0x83){
            printf("katakana[i+j+1] & 0xe0(11100000) : hex: %2x, int: %u\n",
                   katakana[i+j+1] & (char)0xe0,
                   katakana[i+j+1] & (char)0xe0);
            printf("katakana[i+j+1] >> 5 : hex: %2x, int: %u\n",
                   katakana[i+j+1] >> 5,
                   katakana[i+j+1] >> 5);
            if( (katakana[i+j+1] & (char)0xe0) == (char)0x80 ){
              // in [ダ]-[ミ]
              printf("2: [ダ]-[ミ] : %c%c%c ->char[2]-2 char[3] ^ 0x20 = %c%c%c\n\n",
                     katakana[i],
                     katakana[i+1],
                     katakana[i+2],
                     katakana[i],
                     katakana[i+1] - 2,
                     katakana[i+2] ^ 0x20);
            }
            if( (katakana[i+j+1] & (char)0xe0) == (char)0xa0 &&
                katakana[i+j+1] < (char)0xb4 ){
              // in [ム]-[ン]
              printf("3: [ム]-[ン]: %c%c%c ->char[2]-1 char[3] ^ 0x20 = %c%c%c\n\n",
                     katakana[i],
                     katakana[i+1],
                     katakana[i+2],
                     katakana[i],
                     katakana[i+1] - 1,
                     katakana[i+2] ^ 0x20);
            }
          }
        }
      }

      printf("\n");
    }
  }else{
    printf("invalid compare string.\n");
  }
  return 0;
}

実行結果 カタカナ

$ g++ -m32 kanatest1.cpp -o kanatest1
$ ./kanatest1
sizeof(char): 1
sizeof(unsigned char): 1
sizeof(short int): 2
sizeof(unsigned short int): 2
sizeof(int): 4
sizeof(unsigned int): 4
sizeof(long int): 4
sizeof(unsigned long int): 4
sizeof(long long int): 8
sizeof(unsigned long long int): 8
sizeof(float): 4
sizeof(double): 8
sizeof "あい": 7
 , ffffffe3 , ffffff81 , ffffff82 , ffffffe3 , ffffff81 , ffffff84 ,  0 ,  7
ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん   ゝゞ
ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶヽヾ
"ぁ" - "ァ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
1: [ァ]-[タ] : ァ ->char[2]-1 char[3] ^ 0x20 = ぁ
"あ" - "ア" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
1: [ァ]-[タ] : ア ->char[2]-1 char[3] ^ 0x20 = あ
"ぃ" - "ィ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
1: [ァ]-[タ] : ィ ->char[2]-1 char[3] ^ 0x20 = ぃ
"い" - "イ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
1: [ァ]-[タ] : イ ->char[2]-1 char[3] ^ 0x20 = い
"ぅ" - "ゥ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
1: [ァ]-[タ] : ゥ ->char[2]-1 char[3] ^ 0x20 = ぅ
"う" - "ウ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
1: [ァ]-[タ] : ウ ->char[2]-1 char[3] ^ 0x20 = う
"ぇ" - "ェ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
1: [ァ]-[タ] : ェ ->char[2]-1 char[3] ^ 0x20 = ぇ
"え" - "エ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
1: [ァ]-[タ] : エ ->char[2]-1 char[3] ^ 0x20 = え
"ぉ" - "ォ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
1: [ァ]-[タ] : ォ ->char[2]-1 char[3] ^ 0x20 = ぉ
"お" - "オ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
1: [ァ]-[タ] : オ ->char[2]-1 char[3] ^ 0x20 = お
"か" - "カ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
1: [ァ]-[タ] : カ ->char[2]-1 char[3] ^ 0x20 = か
"が" - "ガ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
1: [ァ]-[タ] : ガ ->char[2]-1 char[3] ^ 0x20 = が
"き" - "キ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
1: [ァ]-[タ] : キ ->char[2]-1 char[3] ^ 0x20 = き
"ぎ" - "ギ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
1: [ァ]-[タ] : ギ ->char[2]-1 char[3] ^ 0x20 = ぎ
"く" - "ク" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
1: [ァ]-[タ] : ク ->char[2]-1 char[3] ^ 0x20 = く
"ぐ" - "グ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
1: [ァ]-[タ] : グ ->char[2]-1 char[3] ^ 0x20 = ぐ
"け" - "ケ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
1: [ァ]-[タ] : ケ ->char[2]-1 char[3] ^ 0x20 = け
"げ" - "ゲ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
1: [ァ]-[タ] : ゲ ->char[2]-1 char[3] ^ 0x20 = げ
"こ" - "コ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
1: [ァ]-[タ] : コ ->char[2]-1 char[3] ^ 0x20 = こ
"ご" - "ゴ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
1: [ァ]-[タ] : ゴ ->char[2]-1 char[3] ^ 0x20 = ご
"さ" - "サ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
1: [ァ]-[タ] : サ ->char[2]-1 char[3] ^ 0x20 = さ
"ざ" - "ザ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
1: [ァ]-[タ] : ザ ->char[2]-1 char[3] ^ 0x20 = ざ
"し" - "シ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
1: [ァ]-[タ] : シ ->char[2]-1 char[3] ^ 0x20 = し
"じ" - "ジ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
1: [ァ]-[タ] : ジ ->char[2]-1 char[3] ^ 0x20 = じ
"す" - "ス" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
1: [ァ]-[タ] : ス ->char[2]-1 char[3] ^ 0x20 = す
"ず" - "ズ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
1: [ァ]-[タ] : ズ ->char[2]-1 char[3] ^ 0x20 = ず
"せ" - "セ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
1: [ァ]-[タ] : セ ->char[2]-1 char[3] ^ 0x20 = せ
"ぜ" - "ゼ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
1: [ァ]-[タ] : ゼ ->char[2]-1 char[3] ^ 0x20 = ぜ
"そ" - "ソ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
1: [ァ]-[タ] : ソ ->char[2]-1 char[3] ^ 0x20 = そ
"ぞ" - "ゾ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
1: [ァ]-[タ] : ゾ ->char[2]-1 char[3] ^ 0x20 = ぞ
"た" - "タ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
1: [ァ]-[タ] : タ ->char[2]-1 char[3] ^ 0x20 = た
"だ" - "ダ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
katakana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
2: [ダ]-[ミ] : ダ ->char[2]-2 char[3] ^ 0x20 = だ
"ち" - "チ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
katakana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
2: [ダ]-[ミ] : チ ->char[2]-2 char[3] ^ 0x20 = ち
"ぢ" - "ヂ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
katakana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
2: [ダ]-[ミ] : ヂ ->char[2]-2 char[3] ^ 0x20 = ぢ
"っ" - "ッ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
katakana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
2: [ダ]-[ミ] : ッ ->char[2]-2 char[3] ^ 0x20 = っ
"つ" - "ツ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
katakana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
2: [ダ]-[ミ] : ツ ->char[2]-2 char[3] ^ 0x20 = つ
"づ" - "ヅ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
katakana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
2: [ダ]-[ミ] : ヅ ->char[2]-2 char[3] ^ 0x20 = づ
"て" - "テ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
katakana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
2: [ダ]-[ミ] : テ ->char[2]-2 char[3] ^ 0x20 = て
"で" - "デ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
katakana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
2: [ダ]-[ミ] : デ ->char[2]-2 char[3] ^ 0x20 = で
"と" - "ト" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
katakana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
2: [ダ]-[ミ] : ト ->char[2]-2 char[3] ^ 0x20 = と
"ど" - "ド" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
katakana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
2: [ダ]-[ミ] : ド ->char[2]-2 char[3] ^ 0x20 = ど
"な" - "ナ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
katakana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
2: [ダ]-[ミ] : ナ ->char[2]-2 char[3] ^ 0x20 = な
"に" - "ニ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
katakana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
2: [ダ]-[ミ] : ニ ->char[2]-2 char[3] ^ 0x20 = に
"ぬ" - "ヌ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
katakana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
2: [ダ]-[ミ] : ヌ ->char[2]-2 char[3] ^ 0x20 = ぬ
"ね" - "ネ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
katakana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
2: [ダ]-[ミ] : ネ ->char[2]-2 char[3] ^ 0x20 = ね
"の" - "ノ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
katakana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
2: [ダ]-[ミ] : ノ ->char[2]-2 char[3] ^ 0x20 = の
"は" - "ハ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
katakana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
2: [ダ]-[ミ] : ハ ->char[2]-2 char[3] ^ 0x20 = は
"ば" - "バ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
katakana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
2: [ダ]-[ミ] : バ ->char[2]-2 char[3] ^ 0x20 = ば
"ぱ" - "パ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
katakana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
2: [ダ]-[ミ] : パ ->char[2]-2 char[3] ^ 0x20 = ぱ
"ひ" - "ヒ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
katakana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
2: [ダ]-[ミ] : ヒ ->char[2]-2 char[3] ^ 0x20 = ひ
"び" - "ビ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
katakana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
2: [ダ]-[ミ] : ビ ->char[2]-2 char[3] ^ 0x20 = び
"ぴ" - "ピ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
katakana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
2: [ダ]-[ミ] : ピ ->char[2]-2 char[3] ^ 0x20 = ぴ
"ふ" - "フ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
katakana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
2: [ダ]-[ミ] : フ ->char[2]-2 char[3] ^ 0x20 = ふ
"ぶ" - "ブ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
katakana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
2: [ダ]-[ミ] : ブ ->char[2]-2 char[3] ^ 0x20 = ぶ
"ぷ" - "プ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
katakana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
2: [ダ]-[ミ] : プ ->char[2]-2 char[3] ^ 0x20 = ぷ
"へ" - "ヘ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
katakana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
2: [ダ]-[ミ] : ヘ ->char[2]-2 char[3] ^ 0x20 = へ
"べ" - "ベ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
katakana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
2: [ダ]-[ミ] : ベ ->char[2]-2 char[3] ^ 0x20 = べ
"ぺ" - "ペ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
katakana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
2: [ダ]-[ミ] : ペ ->char[2]-2 char[3] ^ 0x20 = ぺ
"ほ" - "ホ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
katakana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
2: [ダ]-[ミ] : ホ ->char[2]-2 char[3] ^ 0x20 = ほ
"ぼ" - "ボ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
katakana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
2: [ダ]-[ミ] : ボ ->char[2]-2 char[3] ^ 0x20 = ぼ
"ぽ" - "ポ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
katakana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
2: [ダ]-[ミ] : ポ ->char[2]-2 char[3] ^ 0x20 = ぽ
"ま" - "マ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
katakana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
2: [ダ]-[ミ] : マ ->char[2]-2 char[3] ^ 0x20 = ま
"み" - "ミ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
katakana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
2: [ダ]-[ミ] : ミ ->char[2]-2 char[3] ^ 0x20 = み
"む" - "ム" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
3: [ム]-[ン]: ム ->char[2]-1 char[3] ^ 0x20 = む
"め" - "メ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
3: [ム]-[ン]: メ ->char[2]-1 char[3] ^ 0x20 = め
"も" - "モ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
3: [ム]-[ン]: モ ->char[2]-1 char[3] ^ 0x20 = も
"ゃ" - "ャ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
3: [ム]-[ン]: ャ ->char[2]-1 char[3] ^ 0x20 = ゃ
"や" - "ヤ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
3: [ム]-[ン]: ヤ ->char[2]-1 char[3] ^ 0x20 = や
"ゅ" - "ュ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
3: [ム]-[ン]: ュ ->char[2]-1 char[3] ^ 0x20 = ゅ
"ゆ" - "ユ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
3: [ム]-[ン]: ユ ->char[2]-1 char[3] ^ 0x20 = ゆ
"ょ" - "ョ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
3: [ム]-[ン]: ョ ->char[2]-1 char[3] ^ 0x20 = ょ
"よ" - "ヨ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
3: [ム]-[ン]: ヨ ->char[2]-1 char[3] ^ 0x20 = よ
"ら" - "ラ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
3: [ム]-[ン]: ラ ->char[2]-1 char[3] ^ 0x20 = ら
"り" - "リ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
3: [ム]-[ン]: リ ->char[2]-1 char[3] ^ 0x20 = り
"る" - "ル" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
3: [ム]-[ン]: ル ->char[2]-1 char[3] ^ 0x20 = る
"れ" - "レ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
3: [ム]-[ン]: レ ->char[2]-1 char[3] ^ 0x20 = れ
"ろ" - "ロ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
3: [ム]-[ン]: ロ ->char[2]-1 char[3] ^ 0x20 = ろ
"ゎ" - "ヮ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
3: [ム]-[ン]: ヮ ->char[2]-1 char[3] ^ 0x20 = ゎ
"わ" - "ワ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
3: [ム]-[ン]: ワ ->char[2]-1 char[3] ^ 0x20 = わ
"ゐ" - "ヰ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
3: [ム]-[ン]: ヰ ->char[2]-1 char[3] ^ 0x20 = ゐ
"ゑ" - "ヱ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
3: [ム]-[ン]: ヱ ->char[2]-1 char[3] ^ 0x20 = ゑ
"を" - "ヲ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
3: [ム]-[ン]: ヲ ->char[2]-1 char[3] ^ 0x20 = を
"ん" - "ン" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
3: [ム]-[ン]: ン ->char[2]-1 char[3] ^ 0x20 = ん
" " - "ヴ" =   0 ,  3 , 34 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
" " - "ヵ" =   0 ,  3 , 35 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
" " - "ヶ" =   0 ,  3 , 36 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
"ゝ" - "ヽ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
"ゞ" - "ヾ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
katakana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
katakana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
"・ - "・ =   0 ,  0 ,  0 ,
0
not top 1 byte was 0xe3!

source ひらがな

#include <stdio.h>

int main()
{
  char kanaa[] = "あい";
  char hiragana[] = "ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん   ゝゞ";
  char katakana[] = "ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶヽヾ";

  int i,j;

  printf("sizeof(char): %d\n", (int)sizeof(char));
  printf("sizeof(unsigned char): %d\n", (int)sizeof(unsigned char));
  printf("sizeof(short int): %d\n", (int)sizeof(short int));
  printf("sizeof(unsigned short int): %d\n", (int)sizeof(unsigned short int));
  printf("sizeof(int): %d\n", (int)sizeof(int));
  printf("sizeof(unsigned int): %d\n", (int)sizeof(unsigned int));
  printf("sizeof(long int): %d\n", (int)sizeof(long int));
  printf("sizeof(unsigned long int): %d\n", (int)sizeof(unsigned long int));
  printf("sizeof(long long int): %d\n", (int)sizeof(long long int));
  printf("sizeof(unsigned long long int): %d\n", (int)sizeof(unsigned long long int));
  printf("sizeof(float): %d\n", (int)sizeof(float));
  //  printf("sizeof(unsigned float): %d\n", (int)sizeof(unsigned float));
  printf("sizeof(double): %d\n", (int)sizeof(double));
  //  printf("sizeof(unsigned double): %d\n", (int)sizeof(unsigned double));

  printf("sizeof \"%s\": %d\n", (char*) &kanaa, (int) sizeof(kanaa));
  for( i=0 ; i<= (int) sizeof(kanaa) ; i++){
    printf(" , %2x", kanaa[i]);
  }
  printf("\n\n");

  printf("%s\n", (char*) &hiragana);
  printf("%s\n", (char*) &katakana);

  if( (int)sizeof(hiragana) == (int)sizeof(katakana)){
    for( i=0 ; i< (int)sizeof(hiragana) ; i+=3){
      printf("\"%c%c%c\" - \"%c%c%c\" = ",
             hiragana[i],
             hiragana[i+1],
             hiragana[i+2],
             katakana[i],
             katakana[i+1],
             katakana[i+2]);
      for( j=0 ; j<=2 ; j++){
        printf(" %2x ,", katakana[i+j] - hiragana[i+j] );
      }
      printf("\n");
      for(j=0 ; j<=1 ; j++){
        printf("%d\n",j);
        if(j==0){
          if(hiragana[i+j] != (char)0xe3){
            printf("not top 1 byte was 0xe3!\n");
            break;
          }
        }
        if(j==1){
          printf("in 2 byte.\n");
          if(hiragana[i+j] == (char)0x81){
            printf("hiragana[i+j+1] & 0xe0(11100000) : hex: %2x, int: %u\n",
                   (char)hiragana[i+j+1] & (char)0xe0,
                   (char)hiragana[i+j+1] & (char)0xe0);
            printf("hiragana[i+j+1] >> 5 : hex: %2x, int: %u\n",
                   hiragana[i+j+1] >> 5,
                   hiragana[i+j+1] >> 5);
            if( (hiragana[i+j+1] & (char)0xe0) == (char)0x80 &&
                hiragana[i+j+1] != (char)0xa0){
              // in [ァ]-[タ]
              printf("1: [ァ]-[タ] : %c%c%c ->char[2]+1 char[3] ^ 0x20 = %c%c%c\n\n",
                     hiragana[i],
                     hiragana[i+1],
                     hiragana[i+2],
                     hiragana[i],
                     hiragana[i+1] + 1,
                     hiragana[i+2] ^ 0x20);
            }
            if( (hiragana[i+j+1] & (char)0xe0) == (char)0xa0 ){
              // in [ダ]-[ミ]
              printf("2: [ダ]-[ミ] : %c%c%c ->char[2]+2 char[3] ^ 0x20 = %c%c%c\n\n",
                     hiragana[i],
                     hiragana[i+1],
                     hiragana[i+2],
                     hiragana[i],
                     hiragana[i+1] + 2,
                     hiragana[i+2] ^ 0x20);
            }
          }
          if(hiragana[i+j] == (char)0x82){
            printf("hiragana[i+j+1] & 0xe0(11100000) : hex: %2x, int: %u\n",
                   hiragana[i+j+1] & (char)0xe0,
                   hiragana[i+j+1] & (char)0xe0);
            printf("hiragana[i+j+1] >> 5 : hex: %2x, int: %u\n",
                   hiragana[i+j+1] >> 5,
                   hiragana[i+j+1] >> 5);
            if( (hiragana[i+j+1] & (char)0xe0) == (char)0x80 &&
                hiragana[i+j+1] < (char)0x94 ){
              // in [ム]-[ン]
              printf("3: [ム]-[ン]: %c%c%c ->char[2]+1 char[3] ^ 0x20 = %c%c%c\n\n",
                     hiragana[i],
                     hiragana[i+1],
                     hiragana[i+2],
                     hiragana[i],
                     hiragana[i+1] + 1,
                     hiragana[i+2] ^ 0x20);
            }
          }
        }
      }

      printf("\n");
    }
  }else{
    printf("invalid compare string.\n");
  }
  return 0;
}

実行結果 ひらがな

sizeof(char): 1
sizeof(unsigned char): 1
sizeof(short int): 2
sizeof(unsigned short int): 2
sizeof(int): 4
sizeof(unsigned int): 4
sizeof(long int): 8
sizeof(unsigned long int): 8
sizeof(long long int): 8
sizeof(unsigned long long int): 8
sizeof(float): 4
sizeof(double): 8
sizeof "あい": 7
 , ffffffe3 , ffffff81 , ffffff82 , ffffffe3 , ffffff81 , ffffff84 ,  0 ,  0
ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん   ゝゞ
ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶヽヾ
"ぁ" - "ァ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
1: [ァ]-[タ] : ぁ ->char[2]+1 char[3] ^ 0x20 = ァ
"あ" - "ア" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
1: [ァ]-[タ] : あ ->char[2]+1 char[3] ^ 0x20 = ア
"ぃ" - "ィ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
1: [ァ]-[タ] : ぃ ->char[2]+1 char[3] ^ 0x20 = ィ
"い" - "イ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
1: [ァ]-[タ] : い ->char[2]+1 char[3] ^ 0x20 = イ
"ぅ" - "ゥ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
1: [ァ]-[タ] : ぅ ->char[2]+1 char[3] ^ 0x20 = ゥ
"う" - "ウ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
1: [ァ]-[タ] : う ->char[2]+1 char[3] ^ 0x20 = ウ
"ぇ" - "ェ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
1: [ァ]-[タ] : ぇ ->char[2]+1 char[3] ^ 0x20 = ェ
"え" - "エ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
1: [ァ]-[タ] : え ->char[2]+1 char[3] ^ 0x20 = エ
"ぉ" - "ォ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
1: [ァ]-[タ] : ぉ ->char[2]+1 char[3] ^ 0x20 = ォ
"お" - "オ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
1: [ァ]-[タ] : お ->char[2]+1 char[3] ^ 0x20 = オ
"か" - "カ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
1: [ァ]-[タ] : か ->char[2]+1 char[3] ^ 0x20 = カ
"が" - "ガ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
1: [ァ]-[タ] : が ->char[2]+1 char[3] ^ 0x20 = ガ
"き" - "キ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
1: [ァ]-[タ] : き ->char[2]+1 char[3] ^ 0x20 = キ
"ぎ" - "ギ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
1: [ァ]-[タ] : ぎ ->char[2]+1 char[3] ^ 0x20 = ギ
"く" - "ク" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
1: [ァ]-[タ] : く ->char[2]+1 char[3] ^ 0x20 = ク
"ぐ" - "グ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
1: [ァ]-[タ] : ぐ ->char[2]+1 char[3] ^ 0x20 = グ
"け" - "ケ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
1: [ァ]-[タ] : け ->char[2]+1 char[3] ^ 0x20 = ケ
"げ" - "ゲ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
1: [ァ]-[タ] : げ ->char[2]+1 char[3] ^ 0x20 = ゲ
"こ" - "コ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
1: [ァ]-[タ] : こ ->char[2]+1 char[3] ^ 0x20 = コ
"ご" - "ゴ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
1: [ァ]-[タ] : ご ->char[2]+1 char[3] ^ 0x20 = ゴ
"さ" - "サ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
1: [ァ]-[タ] : さ ->char[2]+1 char[3] ^ 0x20 = サ
"ざ" - "ザ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
1: [ァ]-[タ] : ざ ->char[2]+1 char[3] ^ 0x20 = ザ
"し" - "シ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
1: [ァ]-[タ] : し ->char[2]+1 char[3] ^ 0x20 = シ
"じ" - "ジ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
1: [ァ]-[タ] : じ ->char[2]+1 char[3] ^ 0x20 = ジ
"す" - "ス" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
1: [ァ]-[タ] : す ->char[2]+1 char[3] ^ 0x20 = ス
"ず" - "ズ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
1: [ァ]-[タ] : ず ->char[2]+1 char[3] ^ 0x20 = ズ
"せ" - "セ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
1: [ァ]-[タ] : せ ->char[2]+1 char[3] ^ 0x20 = セ
"ぜ" - "ゼ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
1: [ァ]-[タ] : ぜ ->char[2]+1 char[3] ^ 0x20 = ゼ
"そ" - "ソ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
1: [ァ]-[タ] : そ ->char[2]+1 char[3] ^ 0x20 = ソ
"ぞ" - "ゾ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
1: [ァ]-[タ] : ぞ ->char[2]+1 char[3] ^ 0x20 = ゾ
"た" - "タ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
1: [ァ]-[タ] : た ->char[2]+1 char[3] ^ 0x20 = タ
"だ" - "ダ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
hiragana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
2: [ダ]-[ミ] : だ ->char[2]+2 char[3] ^ 0x20 = ダ
"ち" - "チ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
hiragana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
2: [ダ]-[ミ] : ち ->char[2]+2 char[3] ^ 0x20 = チ
"ぢ" - "ヂ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
hiragana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
2: [ダ]-[ミ] : ぢ ->char[2]+2 char[3] ^ 0x20 = ヂ
"っ" - "ッ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
hiragana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
2: [ダ]-[ミ] : っ ->char[2]+2 char[3] ^ 0x20 = ッ
"つ" - "ツ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
hiragana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
2: [ダ]-[ミ] : つ ->char[2]+2 char[3] ^ 0x20 = ツ
"づ" - "ヅ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
hiragana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
2: [ダ]-[ミ] : づ ->char[2]+2 char[3] ^ 0x20 = ヅ
"て" - "テ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
hiragana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
2: [ダ]-[ミ] : て ->char[2]+2 char[3] ^ 0x20 = テ
"で" - "デ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
hiragana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
2: [ダ]-[ミ] : で ->char[2]+2 char[3] ^ 0x20 = デ
"と" - "ト" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
hiragana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
2: [ダ]-[ミ] : と ->char[2]+2 char[3] ^ 0x20 = ト
"ど" - "ド" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
hiragana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
2: [ダ]-[ミ] : ど ->char[2]+2 char[3] ^ 0x20 = ド
"な" - "ナ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
hiragana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
2: [ダ]-[ミ] : な ->char[2]+2 char[3] ^ 0x20 = ナ
"に" - "ニ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
hiragana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
2: [ダ]-[ミ] : に ->char[2]+2 char[3] ^ 0x20 = ニ
"ぬ" - "ヌ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
hiragana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
2: [ダ]-[ミ] : ぬ ->char[2]+2 char[3] ^ 0x20 = ヌ
"ね" - "ネ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
hiragana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
2: [ダ]-[ミ] : ね ->char[2]+2 char[3] ^ 0x20 = ネ
"の" - "ノ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
hiragana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
2: [ダ]-[ミ] : の ->char[2]+2 char[3] ^ 0x20 = ノ
"は" - "ハ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
hiragana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
2: [ダ]-[ミ] : は ->char[2]+2 char[3] ^ 0x20 = ハ
"ば" - "バ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
hiragana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
2: [ダ]-[ミ] : ば ->char[2]+2 char[3] ^ 0x20 = バ
"ぱ" - "パ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
hiragana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
2: [ダ]-[ミ] : ぱ ->char[2]+2 char[3] ^ 0x20 = パ
"ひ" - "ヒ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
hiragana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
2: [ダ]-[ミ] : ひ ->char[2]+2 char[3] ^ 0x20 = ヒ
"び" - "ビ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
hiragana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
2: [ダ]-[ミ] : び ->char[2]+2 char[3] ^ 0x20 = ビ
"ぴ" - "ピ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
hiragana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
2: [ダ]-[ミ] : ぴ ->char[2]+2 char[3] ^ 0x20 = ピ
"ふ" - "フ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
hiragana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
2: [ダ]-[ミ] : ふ ->char[2]+2 char[3] ^ 0x20 = フ
"ぶ" - "ブ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
hiragana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
2: [ダ]-[ミ] : ぶ ->char[2]+2 char[3] ^ 0x20 = ブ
"ぷ" - "プ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
hiragana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
2: [ダ]-[ミ] : ぷ ->char[2]+2 char[3] ^ 0x20 = プ
"へ" - "ヘ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
hiragana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
2: [ダ]-[ミ] : へ ->char[2]+2 char[3] ^ 0x20 = ヘ
"べ" - "ベ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
hiragana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
2: [ダ]-[ミ] : べ ->char[2]+2 char[3] ^ 0x20 = ベ
"ぺ" - "ペ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
hiragana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
2: [ダ]-[ミ] : ぺ ->char[2]+2 char[3] ^ 0x20 = ペ
"ほ" - "ホ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
hiragana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
2: [ダ]-[ミ] : ほ ->char[2]+2 char[3] ^ 0x20 = ホ
"ぼ" - "ボ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
hiragana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
2: [ダ]-[ミ] : ぼ ->char[2]+2 char[3] ^ 0x20 = ボ
"ぽ" - "ポ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
hiragana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
2: [ダ]-[ミ] : ぽ ->char[2]+2 char[3] ^ 0x20 = ポ
"ま" - "マ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
hiragana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
2: [ダ]-[ミ] : ま ->char[2]+2 char[3] ^ 0x20 = マ
"み" - "ミ" =   0 ,  2 , ffffffe0 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffffa0, int: 4294967200
hiragana[i+j+1] >> 5 : hex: fffffffd, int: 4294967293
2: [ダ]-[ミ] : み ->char[2]+2 char[3] ^ 0x20 = ミ
"む" - "ム" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
3: [ム]-[ン]: む ->char[2]+1 char[3] ^ 0x20 = ム
"め" - "メ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
3: [ム]-[ン]: め ->char[2]+1 char[3] ^ 0x20 = メ
"も" - "モ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
3: [ム]-[ン]: も ->char[2]+1 char[3] ^ 0x20 = モ
"ゃ" - "ャ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
3: [ム]-[ン]: ゃ ->char[2]+1 char[3] ^ 0x20 = ャ
"や" - "ヤ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
3: [ム]-[ン]: や ->char[2]+1 char[3] ^ 0x20 = ヤ
"ゅ" - "ュ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
3: [ム]-[ン]: ゅ ->char[2]+1 char[3] ^ 0x20 = ュ
"ゆ" - "ユ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
3: [ム]-[ン]: ゆ ->char[2]+1 char[3] ^ 0x20 = ユ
"ょ" - "ョ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
3: [ム]-[ン]: ょ ->char[2]+1 char[3] ^ 0x20 = ョ
"よ" - "ヨ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
3: [ム]-[ン]: よ ->char[2]+1 char[3] ^ 0x20 = ヨ
"ら" - "ラ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
3: [ム]-[ン]: ら ->char[2]+1 char[3] ^ 0x20 = ラ
"り" - "リ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
3: [ム]-[ン]: り ->char[2]+1 char[3] ^ 0x20 = リ
"る" - "ル" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
3: [ム]-[ン]: る ->char[2]+1 char[3] ^ 0x20 = ル
"れ" - "レ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
3: [ム]-[ン]: れ ->char[2]+1 char[3] ^ 0x20 = レ
"ろ" - "ロ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
3: [ム]-[ン]: ろ ->char[2]+1 char[3] ^ 0x20 = ロ
"ゎ" - "ヮ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
3: [ム]-[ン]: ゎ ->char[2]+1 char[3] ^ 0x20 = ヮ
"わ" - "ワ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
3: [ム]-[ン]: わ ->char[2]+1 char[3] ^ 0x20 = ワ
"ゐ" - "ヰ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
3: [ム]-[ン]: ゐ ->char[2]+1 char[3] ^ 0x20 = ヰ
"ゑ" - "ヱ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
3: [ム]-[ン]: ゑ ->char[2]+1 char[3] ^ 0x20 = ヱ
"を" - "ヲ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
3: [ム]-[ン]: を ->char[2]+1 char[3] ^ 0x20 = ヲ
"ん" - "ン" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
3: [ム]-[ン]: ん ->char[2]+1 char[3] ^ 0x20 = ン
" " - "ヴ" =   0 ,  3 , 34 ,
0
1
in 2 byte.
" " - "ヵ" =   0 ,  3 , 35 ,
0
1
in 2 byte.
" " - "ヶ" =   0 ,  3 , 36 ,
0
1
in 2 byte.
"ゝ" - "ヽ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
"ゞ" - "ヾ" =   0 ,  1 , 20 ,
0
1
in 2 byte.
hiragana[i+j+1] & 0xe0(11100000) : hex: ffffff80, int: 4294967168
hiragana[i+j+1] >> 5 : hex: fffffffc, int: 4294967292
"" - "ヨ" =   0 , ffffffd6 , 1e ,
0
not top 1 byte was 0xe3!


リロード   差分   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: Sat, 19 Oct 2013 18:22:59 JST (3840d)