算法 特殊进制的位数

给定一个正整数,如果把它转为十六进制,那么它是个几位数字呢?

示例 1:

输入:12345678

输出:6

解释:12345678转成十六进制为0x BC614E,即6位.

示例 2:

输入:0x12345678

输出:8

示例 3:

输入:0X12AB34

输出:6

算法:在计算机中,数都是二进制码的形式存储。由十进制数统计位数/10可以知道,十六进制也可以这样处理,每次丢弃十六进制的”个位”,直到0,统计丢弃的次数即可.其它进制的处理过程类似.

int NumOf0X(int n)
{
	int ans = 0;
	while (n != 0)
	{
		n = n / 16;
		ans++;
	}
	return ans;
}
posted @ 2020-10-24 17:53  simonlma  阅读(32)  评论(0)    收藏  举报