annotate src/u8tbl.c @ 12254:616be78bd12e draft

<oerjan> revert
author HackEso <hackeso@esolangs.org>
date Fri, 06 Dec 2019 07:54:58 +0000
parents 8ddd6d5dc480
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6342
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
1 #include "stdio.h"
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
2 #include "stdlib.h"
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
3
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
4 char *int2u8(unsigned U){
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
5 static char out[7];
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
6 int i=0;
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
7 if(U<=0x80)out[i++]=U;
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
8 else if(U<0x800){
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
9 out[i++]=(U>>6|0xC0);
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
10 out[i++]=(U&0x3f|0x80);
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
11 }else if(U<=0x10000){
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
12 out[i++]=(U>>12|0xE0);
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
13 out[i++]=(U>>6&0x3f|0x80);
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
14 out[i++]=(U&0x3f|0x80);
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
15 }else if(U<=0x200000){
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
16 out[i++]=(U>>18|0xF0);
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
17 out[i++]=(U>>12&0x3f|0x80);
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
18 out[i++]=(U>>6&0x3f|0x80);
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
19 out[i++]=(U&0x3f|0x80);
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
20 }else if(U<=0x4000000){
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
21 out[i++]=(U>>24|0xF8);
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
22 out[i++]=(U>>18&0x3f|0x80);
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
23 out[i++]=(U>>12&0x3f|0x80);
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
24 out[i++]=(U>>6&0x3f|0x80);
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
25 out[i++]=(U&0x3f|0x80);
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
26 }else if(U<=0x80000000){
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
27 out[i++]=(U>>30|0xFC);
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
28 out[i++]=(U>>24&0x3f|0x80);
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
29 out[i++]=(U>>18&0x3f|0x80);
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
30 out[i++]=(U>>12&0x3f|0x80);
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
31 out[i++]=(U>>6&0x3f|0x80);
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
32 out[i++]=(U&0x3f|0x80);
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
33 }
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
34 out[i]=0;
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
35 return out;
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
36 }
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
37
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
38 int main(int argc,char **argv){
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
39 int i = strtol(argv[1],0,0);
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
40 int m = strtol(argv[2],0,0);
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
41 for(;i<=m;i++){
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
42 printf("%s",int2u8(i));
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
43 if(i%16==15)putchar('\n');
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
44 }
8e6c7372226d <\oren\> fetch http://www.orenwatson.be/u8tbl.c
HackBot
parents:
diff changeset
45 }