JISからSJISへの変換規則

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






1998/4/12 間違ってる箇所があったので修正

漢字コードのページに戻る。