Mercurial > repo
comparison src/u8tbl.c @ 6368:8ddd6d5dc480
<oerjan> ` mv u8tbl bin; mv u8tbl.c src
author | HackBot |
---|---|
date | Thu, 10 Dec 2015 02:48:22 +0000 |
parents | u8tbl.c@8e6c7372226d |
children |
comparison
equal
deleted
inserted
replaced
6367:5cc703dfcdfa | 6368:8ddd6d5dc480 |
---|---|
1 #include "stdio.h" | |
2 #include "stdlib.h" | |
3 | |
4 char *int2u8(unsigned U){ | |
5 static char out[7]; | |
6 int i=0; | |
7 if(U<=0x80)out[i++]=U; | |
8 else if(U<0x800){ | |
9 out[i++]=(U>>6|0xC0); | |
10 out[i++]=(U&0x3f|0x80); | |
11 }else if(U<=0x10000){ | |
12 out[i++]=(U>>12|0xE0); | |
13 out[i++]=(U>>6&0x3f|0x80); | |
14 out[i++]=(U&0x3f|0x80); | |
15 }else if(U<=0x200000){ | |
16 out[i++]=(U>>18|0xF0); | |
17 out[i++]=(U>>12&0x3f|0x80); | |
18 out[i++]=(U>>6&0x3f|0x80); | |
19 out[i++]=(U&0x3f|0x80); | |
20 }else if(U<=0x4000000){ | |
21 out[i++]=(U>>24|0xF8); | |
22 out[i++]=(U>>18&0x3f|0x80); | |
23 out[i++]=(U>>12&0x3f|0x80); | |
24 out[i++]=(U>>6&0x3f|0x80); | |
25 out[i++]=(U&0x3f|0x80); | |
26 }else if(U<=0x80000000){ | |
27 out[i++]=(U>>30|0xFC); | |
28 out[i++]=(U>>24&0x3f|0x80); | |
29 out[i++]=(U>>18&0x3f|0x80); | |
30 out[i++]=(U>>12&0x3f|0x80); | |
31 out[i++]=(U>>6&0x3f|0x80); | |
32 out[i++]=(U&0x3f|0x80); | |
33 } | |
34 out[i]=0; | |
35 return out; | |
36 } | |
37 | |
38 int main(int argc,char **argv){ | |
39 int i = strtol(argv[1],0,0); | |
40 int m = strtol(argv[2],0,0); | |
41 for(;i<=m;i++){ | |
42 printf("%s",int2u8(i)); | |
43 if(i%16==15)putchar('\n'); | |
44 } | |
45 } |