欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

金山笔试题 "写一个函数,对给定整数的二进制表示进行描述"

程序员文章站 2022-07-15 09:37:22
...

4.      写一个函数,对给定整数的二进制表示进行描述
如:给定整数131,其二进制表示为10000011,要求函数输出以下结果:

1: 2

0: 5

1: 1

表示从最低位开始,包含215011

 

 

参考上一题,确定本函数的名字,入口出口及返回值,并实现本函数



 

// js.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
using namespace std;
void ParseInt(int n);
int _tmain(int argc, _TCHAR* argv[])
{

	int n;
	cin >> n;
	ParseInt(n);
	

	system("pause");
	return 0;
}

void ParseInt(int n)
{
	int cnt =0;
	int temp =-1;
	for(int i=0;i<8;++i)
	{
		if(n&(1<<i))
		{
			if(temp < 0) //第一次
			{
				temp=1;
				++cnt;
			}
			else if(temp != 1)//遇到不同的数
			{
				cout << "0:" << cnt << endl; //打印上一段的结果
				temp=1;
				cnt=1;
			}
			else
			{
				cnt++;
			}
		}
		else
		{
			if(temp < 0)
			{
				temp =0;
				++cnt;
			}
			else if(temp != 0)
			{
				cout << "1:" << cnt << endl; //打印上一段的结果
				temp=0;
				cnt=1;
			}
			else
			{
				cnt++;
			}
		}
	}
	cout<<temp<<':'<<cnt << endl;
}


 

 

转载于:https://www.cnblogs.com/snake-hand/archive/2013/06/08/3127582.html