
代码文本:
#include "stdio.h"
int main(int argc,char *argv[]){
char a[11],ln
int n,m,x,k,t
printf("Please enter a binary string &k(int 0<k<11)...\n")
if(scanf("%10[0-1]%d",a,&k)==2 &&k>0 &&k<11){//限制长度以不显示太多
for(m=n=ln=0a[ln](n*=2)+=a[ln++]-'0',(m*=2)+=1)//转换为十进制
if(k<=ln){
putchar('\n')
while(m>=0){//算法
for(t=m^n,x=0tx+=t&1,t>>=1)
if(k==x){
for(t=1<<(ln-1)tprintf("%d",!!(t&m)),t>>=1)
putchar('\n')
}
m--
}
}
else
printf("k=%d is too large, invalid input, exit...\n",k)
}
else
printf("Input error, exit...\n")
return 0
}
可以得到汉字的每个字节的ASCII码(内码)值,也可以得到它们的区位码:
#include<stdio.h>
int main()
{unsigned char s[11] int i,a,b
printf("请输入姓名:")
gets(s)
printf("汉字\tASCII码\t\t内码\t区位码\n")
for(i=0s[i]i+=2)
{ a=s[i] b=s[i+1]
printf(" %c%c :\t%d %d\t\t%X%X\t%d",a,b,a,b,a,b,a-160)
if(b<170)printf("0%d\n",b-160)
else printf("%d\n",b-160)
}
system("pause")
return 0
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)