漢字コードの第一バイト(上位バイト)を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;
}