:c语言汉字转化成二进制代码

**********************************************************

***********************************************************

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
/*
汉字转化成二进制码 
*/
void conv(char *c)
{
    char ch[9] = {'\0'};
    int i;
    int j = 0;
    int count = 0;
    char t[3] = {'\0'};
    while('\0' != c[j])
    {
       for(i = 7;i >= 0;i--)
       {
            ch[i] = (c[j]&1)+'0';
            //右移 
            c[j]>>=1;
       }
       printf("%s\t",ch);
       j++;
    }
}
int main()
{
    char use;
    char c[100];
    printf("本程序实现汉字的二进制编码翻译功能\n确认开始程序?(y/n)");
    use = getch();
    while(use =='y' || use =='Y')
    {
       printf("\n请输入要转化的字 :");
       scanf("%s",c);
       conv(c);
       printf("是否继续转换(y/n)");
       use = getch();
    }
    system(" PAUSE");
    return 0;

}

********************************************************

***********************************************************

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
//汉字转化成16进制 
int main()
{
    char c[10] = "哈尔滨";
    for(int i=0;i<6;i++)
    {
        printf("%x\n",c[i]&0xff);
   
    }
    system("pause");
    return 0; 
}

 

 

国标GB2312-80规定,全部国标汉字及符号组成94×94矩阵,每行称区,每列称位,这种编码方式就叫做区位码. 因区码和位码组合是在01至94范围内,会与ASCII码产生冲突,于是制定了汉字内码:规定为高位内码=区码+20H+80H; 低位内码=位码+20H+80H.所以各种输入法都是按这个标准去编写的.因此,把一个汉字表示为两个字节的二进制码,这种编码称为 区位 码,或称为内码.

你可能感兴趣的:(:c语言汉字转化成二进制代码)