view src/u8tbl.c @ 8471:3a33aa4ab667

<oerjan> le/rn tanebvention/Tanebventions include automatic squirrel feeders, necessity, Go, submarine jousting, the universe, weetoflakes, persistence, the BBC, progress, and this sentence. See also tanebventions (math). He never invents anything involving sex.
author HackBot
date Mon, 13 Jun 2016 07:55:16 +0000
parents 8ddd6d5dc480
children
line wrap: on
line source

#include "stdio.h"
#include "stdlib.h"

char *int2u8(unsigned U){
	static char out[7];
	int i=0;
	if(U<=0x80)out[i++]=U;
	else if(U<0x800){
		out[i++]=(U>>6|0xC0);
		out[i++]=(U&0x3f|0x80);
	}else if(U<=0x10000){
		out[i++]=(U>>12|0xE0);
		out[i++]=(U>>6&0x3f|0x80);
		out[i++]=(U&0x3f|0x80);
	}else if(U<=0x200000){
		out[i++]=(U>>18|0xF0);
		out[i++]=(U>>12&0x3f|0x80);
		out[i++]=(U>>6&0x3f|0x80);
		out[i++]=(U&0x3f|0x80);
	}else if(U<=0x4000000){
		out[i++]=(U>>24|0xF8);
		out[i++]=(U>>18&0x3f|0x80);
		out[i++]=(U>>12&0x3f|0x80);
		out[i++]=(U>>6&0x3f|0x80);
		out[i++]=(U&0x3f|0x80);
	}else if(U<=0x80000000){
		out[i++]=(U>>30|0xFC);
		out[i++]=(U>>24&0x3f|0x80);
		out[i++]=(U>>18&0x3f|0x80);
		out[i++]=(U>>12&0x3f|0x80);
		out[i++]=(U>>6&0x3f|0x80);
		out[i++]=(U&0x3f|0x80);
	}
	out[i]=0;
	return out;
}

int main(int argc,char **argv){
	int i = strtol(argv[1],0,0);
	int m = strtol(argv[2],0,0);
	for(;i<=m;i++){
		printf("%s",int2u8(i));
		if(i%16==15)putchar('\n');
	}
}