C语言模拟练习(5)

原创 2018年04月15日 09:49:42
程序代码:

#include<stdio.h>

//写一个函数返回函数二进制中1的个数
//比如:15 0000 1111 4个1
//程序原型
//int count_one_bits(unsigned int value){
// 返回1的个数
//}
//
int count_one_bits(unsigned int value){
int i = 0;
int arr[32]={0};
int count = 0;
for(;i<32;i++){
arr[i] = value&1;
value = value>>1;
if(arr[i] == 1){   //计算函数二进制中1的个数
count++;
}
}
for(i=31;i>=0;i--){
printf("%d ",arr[i]);
}
printf("\n");
printf("%d 个1\n",count);
return 0;
}


//获取一个数二进制列中所有到偶数位和奇数位,分别输出二进制序列
void get_odd_and_even(unsigned int value){
int i = 0;
int arr[32] = {0};
int count = 0;
for(;i<32;i++){
arr[i] = value&1;
value = value>>1;
}
printf("偶数位:");
for(i=31;i>=0;i-=2){
printf("%d ",arr[i]);
}
printf("\n");
printf("奇数位:");
for(i=30;i>=0;i-=2){
printf("%d ",arr[i]);
}
printf("\n");
}
//输出整数的每一位
void output_bit_integer(unsigned int value){
printf("%d\n",value);
int arr[10]={0};
int count = 0;
while(value!= 0){  //将整数的每一位存储至数值中
arr[count] = value%10;
value = value/10;
++count;
}
printf("bit:");
--count;
for(;count>=0;--count){   //打印数组中的有效元素
printf("%d ",arr[count]);
}
printf("\n");
}
//编程实现:
//俩个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同
//输入列子
//1999 2299
//输出列子:7
void bit_of_value(unsigned int value,unsigned int value1){
int i = 0;
int arr[32]={0};
int arr1[32]={0};
int count = 0;
printf("value = %d   value1 =  %d\n",value,value1);
for(;i<32;i++){
arr[i] = value&1;
value = value>>1;
}
for(i=0;i<32;i++){
arr1[i] = value1&1;
value1 = value1>>1;
}
for(i=0;i<32;i++){
if(arr[i]!=arr1[i]){
count++;
}
}
printf("different:");
printf("%d\n",count);
}
void textcount_one_bits(){
printf("\n*************%s****************\n",__FUNCTION__);
count_one_bits(15);
}
void textget_odd_and_even(){
printf("\n*************%s****************\n",__FUNCTION__);
get_odd_and_even(15);
}
void textoutput_bit_integer(){
printf("\n*************%s****************\n",__FUNCTION__);
output_bit_integer(15);
}
void textbit_of_value(){
printf("\n*************%s****************\n",__FUNCTION__);
bit_of_value(1999,2299);
}
int main(){
textcount_one_bits();
textget_odd_and_even();
textoutput_bit_integer();
textbit_of_value();
}

检测结果:

[chaiyandong@localhost exec_about_c]$ ./day06


*************textcount_one_bits****************
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 
4 个1


*************textget_odd_and_even****************
偶数位:0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 
奇数位:0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 


*************textoutput_bit_integer****************
15
bit:1 5 


*************textbit_of_value****************
different:7
[chaiyandong@localhost exec_about_c]$ vim day06.c
[chaiyandong@localhost exec_about_c]$ make clear
rm -r day06
[chaiyandong@localhost exec_about_c]$ make
gcc -g -o day06 day06.c
[chaiyandong@localhost exec_about_c]$ ./day06


*************textcount_one_bits****************
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 
4 个1


*************textget_odd_and_even****************
偶数位:0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 
奇数位:0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 


*************textoutput_bit_integer****************
15
bit:1 5 


*************textbit_of_value****************
value = 1999   value1 =  2299
different:7

软件复用为软件开发提速

软件复用为软件开发提速四木(本文转载自软件工程专家网www.21cmm.com)    随着社会信息化程度的提高,IT技术已经深入到社会生活的方方面面,而软件作为IT技术应用的核心,其重要性也日渐突出...
  • gigix
  • gigix
  • 2002-04-09 09:37:00
  • 1370

C语言单元小结(5)

二维数组int arr[2][3] = {{1, 2, 3}, {4, 5, 6}}; 数组名是数组第一个元素的首地址,也就是arr == &arr[0] arr[0]是第二维的数组名,也就是ar...
  • Alien_Suda
  • Alien_Suda
  • 2017-12-10 22:16:04
  • 74

《明解C语言》示例代码和练习代码[第5章]

《明解C语言》,作者:柴田望洋。书中第5章的示例代码和练习代码。
  • cloudmonke
  • cloudmonke
  • 2016-12-19 15:14:29
  • 2098

C/C++经典程序训练3---模拟计算器(类)

Problem Description简单计算器模拟:输入两个整数和一个运算符,输出运算结果。Input第一行输入两个整数,用空格分开;第二行输入一个运算符(+、-、*、/)。所有运算均为整数运算,保...
  • qq_40390825
  • qq_40390825
  • 2018-03-19 11:21:56
  • 85

Linux C 指针练习

题目一、已知数组内容如下 s[] = {1,2,3,4,5,6,7,8,9},输入一个常数 m(1 代码如下: #include int main() { int a[] = {1,2,3,4,...
  • zqixiao_09
  • zqixiao_09
  • 2015-12-20 16:09:53
  • 1696

乌龟和兔子赛跑的故事

“这个故事大家在小的时侯都听过,兔子因为骄傲和轻敌,而在半路上睡觉,而乌龟呢,因为坚持不懈而取得了胜利。这个故事大家都会讲,但是到了我们MBA的课堂上,这个故事就不应该停留在幼儿园的水平了,我们应该从...
  • guoying_
  • guoying_
  • 2011-09-19 22:20:54
  • 6916

【蓝桥杯】龟兔赛跑问题

依然是很基础的问题,一上手就看懂了题意,可是测试样例老是有两个过不去,调试了很久,才找到问题所在。写此记下。 问题描述   话说这个世界上有各种各样的兔子和乌龟,但是研究发现,所有的兔子和...
  • m0_37366651
  • m0_37366651
  • 2017-02-23 17:23:57
  • 232

C语言考试模拟系统

  • 2013年07月02日 08:42
  • 16.51MB
  • 下载

一些可以使你感兴趣的c语言简单练习

在学习的过程中最重要的就是自己对所学的东西感不感兴趣,兴趣在我们学习的过程中会给我们一些动力,从而激发我们潜在的力量,今天就给大家介绍几种有意思的C语言练习题,从而使大家可以对C语言又不一样的学习态度...
  • Cell_KEY
  • Cell_KEY
  • 2016-03-29 22:51:29
  • 2657

基础练习2_01字串

/* 2.基础练习 01字串? 问题描述 对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。 它们的前几个是: 00000 00001 00010 00011 00100 请按从小...
  • liubinzi123
  • liubinzi123
  • 2014-10-10 10:22:19
  • 2979
收藏助手
不良信息举报
您举报文章:C语言模拟练习(5)
举报原因:
原因补充:

(最多只允许输入30个字)