015-求int型数据在内存中存储时1的个数

/*
015-求int型数据在内存中存储时1的个数

题目描述

输入一个int型数据,计算出该int型数据在内存中存储时1的个数。

输入描述:
 输入一个整数(int类型)

输出描述:
 这个数转换成2进制后,输出1的个数

输入例子:
5

输出例子:
2
*/
//c语言版
#include <stdio.h>
int main(void)
{
	int integer,i;
	int count = 0;
	scanf("%d",&integer);
	unsigned uninteger = (unsigned) integer;
	//printf("%u\n",uninteger);
	while(uninteger)
	{
		if(uninteger % 2 == 1)
		{
			count++;
		}
		uninteger /= 2;
	}
	printf("%d",count);
	return 0;
}
时间: 2024-10-13 22:45:02

015-求int型数据在内存中存储时1的个数的相关文章

求int型数据在内存中存储时1的个数

1.求int型数据在内存中存储时1的个数 输入一个int型数据,计算出该int型数据在内存中存储时1的个数. 我们非常easy想到例如以下方法: #include <iostream> using namespace std; int main() { int n,cnt=0; cin>>n; while(n) { if(n%2==1) cnt++; n=n/2; } cout<<cnt<<endl; return 0; } 在对代码进行測试时输入负数无法得

(一)求 int 型数据在内存中存储时 1 的个数

题目:求 int 型数据在内存中存储时 1 的个数 描述:输入一个 int 型数据,计算出该 int 型数据在内存中存储时 1 的个数 运行时间限制: 10 sec 内存限制:128 MByte 输入:输入一个整数(int 类型) 输出:这个数转换成2进制后,输出 1 的个数 1 #include <stdio.h> 2 3 int GetCount(int num) 4 { 5 /* 功能实现 */ 6 int ret = 0; 7 8 while (num) 9 { 10 num &

[NewCoder]求int型正整数在内存中存储时1的个数

输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数. 输入描述: 输入一个整数(int类型) 输出描述: 这个数转换成2进制后,输出1的个数  输入例子:5  输出例子:2 import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int num = 0; S

华为OJ-求int型数据在内存中存储时1的个数

1 #include <iostream> 2 using namespace std; 3 int GetCount(int num) 4 { 5 int m=0; 6 while(num) 7 { 8 num &=(num-1); 9 m++; 10 } 11 return m; 12 } 13 int main() 14 { 15 int a; 16 cin>>a; 17 cout<<GetCount(a)<<endl; 18 } 原文地址:h

输入一个int型数据,计算出它在内存中存储时含1的个数

/******************************************************** 输入一个int型数据,计算出它在内存中存储时含1的个数 比如: 输入:5 输出:2 ********************************************************/ #include<iostream> int CountOne(int num) { int count = 0; while(num){ count++; num = num&am

计算int 型数值在内存中二进制1的个数

今天在华为OJ上遇到这么一个题目,很简单,但是却总是得不到最好的成绩记录.因此比较了自己的程序.思路与别人的异同,发现还是有很大区别的,遂记录如下. 题目-- 输入一个int型整数,求该整数的二进制在内存中有多少个1.例如输入10,由于其二进制表示为1010,有两个1,因此输出2. 思路1 <span style="font-size:18px;">public static void main(String[] args) { Scanner scanner = new

求int型数组和最大子数组 续

之前的博文里已经实现过该程序的构思.编译.运行,本次就不再重复与之相雷同的内容. 题目:与别人借组,借助求int型数组最大和子数组的问题,考虑大数溢出和int取值范围的问题 要求: 调试程序  当子数组所含元素值超过int型数组取值范围时,会出现什么情况? 实现: 在接触到这个问题之前,肯定的说,我从来没有考虑过这个问题,不是自己不知道int型数值的取值范围,而是自己根本没有注意过这个问题,也没有想过数的取值会超过这个范围.知道这个“问题”后我做了下面的事情: a.和同学借组,查阅相关资料,了解

整型数据在内存中的存放形式

整型数据在内存中是以其二进制的补码的形式存放的! 1.原码 就是以最高位作为符号位,0代表该数值为正,1代表为负! 比如:67和-67 2.反码 正数的原码.反码.补码相同! 负数的反码是在其符号位不变的基础之上,其余的数值位按位取反,就是0变成1,1变成0 3.补码 正数的原码.反码.补码相同! 负数的补码是其反码加1! 也就是说,在内存中,67其实存放的就是: 00000000 00000000 00000000 01000011 而-67其实存放的就是: 11111111 11111111

浮点数如何在内存中存储

首先,将10进制的小数0.1转换为二进制,方法如下: 0.1*2==0.2  取0.2的整数部分, 结果为0.0 0.2*2==0.4  取0.4的整数部分, 结果为0.00 0.4*2==0.8  取0.8的整数部分, 结果为0.000 0.8*2==1.6  取1.6的整数部分, 结果为0.0001 0.6*2==1.2  取1.6的整数部分, 结果为0.00011 0.2*2==0.4  取0.4的整数部分, 结果为0.000110 最后这一步开始循环,因此0.1的二进制为数为: 0.00