殆どというか、Cでしか書いていないのはご愛嬌でw 実行環境はCentOS5のコンパイル環境。文字コード設定はもちろんUTF-8

source

#include <string>
#include <iostream>

using namespace std;


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

  int i,j;

  printf("sizeof(char): %d\n", sizeof(char));
  printf("sizeof(unsigned char): %d\n", sizeof(unsigned char));
  printf("sizeof(short int): %d\n", sizeof(short int));
  printf("sizeof(unsigned short int): %d\n", sizeof(unsigned short int));
  printf("sizeof(int): %d\n", sizeof(int));
  printf("sizeof(unsigned int): %d\n", sizeof(unsigned int));
  printf("sizeof(long int): %d\n", sizeof(long int));
  printf("sizeof(unsigned long int): %d\n", sizeof(unsigned long int));
  printf("sizeof(long long int): %d\n", sizeof(long long int));
  printf("sizeof(unsigned long long int): %d\n", sizeof(unsigned long long int));
  printf("sizeof(float): %d\n", sizeof(float));
  //  printf("sizeof(unsigned float): %d\n", sizeof(unsigned float));
  printf("sizeof(double): %d\n", sizeof(double));
  //  printf("sizeof(unsigned double): %d\n", 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!


リロード   差分   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS