漢字コードの第一バイト(上位バイト)をHIGH 第二バイト(下位バイト)をLOW とする。 HIGHが0x9F以下なら HIGH=HIGH-0x71 それ以外なら HIGH=HIGH-0xB1 (無条件) HIGH=HIGH×2+1 LOWの値が0x7Fより大きいなら LOW=LOW-0x01 LOWの値が0x9E以上なら LOW=LOW-0x7D HIGH=HIGH+1 それ以外なら LOW=LOW-0x1Fプログラム例
char *sjistojis(unsigned char sjis[2]) { static unsigned char jis[2]; jis[0]=sjis[0]; jis[1]=sjis[1]; if(jis[0]<=0x9f) jis[0]-=0x71; else jis[0]-=0xb1; jis[0]*=2; jis[0]++; if(jis[1]>=0x7F) jis[1]-=0x01; if(jis[1]>=0x9e){ jis[1]-=0x7d; jis[0]++; }else jis[1]-=0x1f; return jis; }