不同制式字符串之间的转换
生活随笔
收集整理的這篇文章主要介紹了
不同制式字符串之间的转换
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
int main() {
??? int i,v;
??? char bs[33];
??? char b[33];
??? char hs[9];
??? char h[9];
??? char s[4];
??? char *e;
// 十進制整數轉二進制串;
??? i=1024;
??? ltoa(i,b,2);
??? sprintf(bs,"%032s",b);
??? printf("i=%d,bs=%s\n",i,bs);
// 十進制整數轉十六進制串;
??? i=1024;
??? ltoa(i,h,16);
??? sprintf(hs,"%08s",h);
??? printf("i=%d,hs=%s\n",i,hs);
// 十六進制字符串轉成十進制數
??? strcpy(hs,"00000400");
??? sscanf(hs,"%x",&i);
??? printf("hs=%s,i=%d\n",hs,i);
// 二進制字符串轉化為十六進制字符串;
??? strcpy(bs,"00000000000000000000010000000000");
??? i=strtol(bs,&e,2);
??? ltoa(i,h,16);
??? sprintf(hs,"%08s",h);
??? printf("bs=%s,hs=%s\n",bs,hs);
// 二進制字符串轉化為十進制數;
??? strcpy(bs,"00000000000000000000010000000000");
??? i=strtol(bs,&e,2);
??? printf("bs=%s,i=%d\n",bs,i);
// 十六進制字符串轉成二進制串
??? strcpy(hs,"00000400");
??? sscanf(hs,"%x",&i);
??? ltoa(i,b,2);
??? sprintf(bs,"%032s",b);
??? printf("hs=%s,bs=%s\n",hs,bs);
// ASC\GBK字符串轉十六進制串
??? strcpy(s,"a漢");
??? i=0;
??? while (1) {
??????? if (0==s[i]) break;
??????? sprintf(hs+i*2,"%02X",(unsigned char)s[i]);
??????? i++;
??? }
??? setlocale(LC_ALL,"chs");
??? printf("s=%s,hs=%s\n",s,hs);
// 十六進制字符串轉成漢字(GBK)及字符(ASC)
??? strcpy(hs,"61BABA");
??? i=0;
??? while (1) {
??????? if (1!=sscanf(hs+i*2,"%2x",&v)) break;
??????? s[i]=(char)v;
??????? i++;
??? }
??? s[i]=0;
??? printf("hs=%s,s=%s\n",hs,s);
return 0;
}
//i=1024,bs=00000000000000000000010000000000
//i=1024,hs=00000400
//hs=00000400,i=1024
//bs=00000000000000000000010000000000,hs=00000400
//bs=00000000000000000000010000000000,i=1024
//hs=00000400,bs=00000000000000000000010000000000
//s=a漢,hs=61BABA
//hs=61BABA,s=a漢
#include <stdlib.h>
#include <string.h>
#include <locale.h>
int main() {
??? int i,v;
??? char bs[33];
??? char b[33];
??? char hs[9];
??? char h[9];
??? char s[4];
??? char *e;
// 十進制整數轉二進制串;
??? i=1024;
??? ltoa(i,b,2);
??? sprintf(bs,"%032s",b);
??? printf("i=%d,bs=%s\n",i,bs);
// 十進制整數轉十六進制串;
??? i=1024;
??? ltoa(i,h,16);
??? sprintf(hs,"%08s",h);
??? printf("i=%d,hs=%s\n",i,hs);
// 十六進制字符串轉成十進制數
??? strcpy(hs,"00000400");
??? sscanf(hs,"%x",&i);
??? printf("hs=%s,i=%d\n",hs,i);
// 二進制字符串轉化為十六進制字符串;
??? strcpy(bs,"00000000000000000000010000000000");
??? i=strtol(bs,&e,2);
??? ltoa(i,h,16);
??? sprintf(hs,"%08s",h);
??? printf("bs=%s,hs=%s\n",bs,hs);
// 二進制字符串轉化為十進制數;
??? strcpy(bs,"00000000000000000000010000000000");
??? i=strtol(bs,&e,2);
??? printf("bs=%s,i=%d\n",bs,i);
// 十六進制字符串轉成二進制串
??? strcpy(hs,"00000400");
??? sscanf(hs,"%x",&i);
??? ltoa(i,b,2);
??? sprintf(bs,"%032s",b);
??? printf("hs=%s,bs=%s\n",hs,bs);
// ASC\GBK字符串轉十六進制串
??? strcpy(s,"a漢");
??? i=0;
??? while (1) {
??????? if (0==s[i]) break;
??????? sprintf(hs+i*2,"%02X",(unsigned char)s[i]);
??????? i++;
??? }
??? setlocale(LC_ALL,"chs");
??? printf("s=%s,hs=%s\n",s,hs);
// 十六進制字符串轉成漢字(GBK)及字符(ASC)
??? strcpy(hs,"61BABA");
??? i=0;
??? while (1) {
??????? if (1!=sscanf(hs+i*2,"%2x",&v)) break;
??????? s[i]=(char)v;
??????? i++;
??? }
??? s[i]=0;
??? printf("hs=%s,s=%s\n",hs,s);
return 0;
}
//i=1024,bs=00000000000000000000010000000000
//i=1024,hs=00000400
//hs=00000400,i=1024
//bs=00000000000000000000010000000000,hs=00000400
//bs=00000000000000000000010000000000,i=1024
//hs=00000400,bs=00000000000000000000010000000000
//s=a漢,hs=61BABA
//hs=61BABA,s=a漢
總結
以上是生活随笔為你收集整理的不同制式字符串之间的转换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DOM 元素以及内容的增删改
- 下一篇: java mod函数的使用方法_java