漢字コードの第一バイト(上位バイト)をHIGH 第二バイト(下位バイト)をLOW とする。 HIGHが奇数なら LOW=LOW+0x1F それ以外なら LOW=LOW+0x7D LOWが0x7F以上なら LOW=LOW+1 (無条件) HIGH=(HIGH-0x21)/2 + 0x81 HIGHが0x9F以上なら HIGH=HIGH+0x40プログラム例
char *jistosjis(unsigned char jis[2]) { static unsigned char sjis[2]; sjis[0]=jis[0]; sjis[1]=jis[1]; if(sjis[0]%2==1) sjis[1]+=0x1f; else sjis[1]+=0x7d; if(sjis[1]>=0x7f) sjis[1]++ sjis[0]=(sjis[0]-0x21)/2+0x81; if(sjis[0]>=0x9e) sjis[0]+=0x40; return sjis; }