C語言實現任意進制的轉換,主要注意代碼的小技巧


在Linux GCC編譯測試通過,代碼如下:

#include <stdio.h>

void tobase(int, int);
int main()
{
	tobase(33, 16);
	return 0;
}

void tobase(int value, int base)
{
	static char digits[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	char buf[(sizeof(long) << 3) + 1];
	char *ptr, *end;

	if (base < 2 || base > 36) {
		printf("error base range \n");
	}

	end = ptr = buf + sizeof(buf) - 1;
	*ptr = '\0';
	do {
		*--ptr = digits[value % base];
		value /= base;
	} while (ptr > buf && value);

	printf("base: %d, => %s \n", base, ptr);
}

轉自:http://www.yinqisen.cn/blog-673.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM