C语言程序-位操作
来源:互联网 发布:双色球中奖算法 编辑:程序博客网 时间:2024/05/29 09:15
1.unsigned int reverse_bit(unsigned int value);
这个函数的返回值value的二进制位模式从左到右翻转后的值。
如:
在32位机器上25这个值包含下列各位:
00000000000000000000000000011001
翻转后:(2550136832)
10011000000000000000000000000000
程序结果返回:
2550136832
#include<stdio.h>#include <math.h>#include <windows.h>unsigned int reverse_bit(unsigned int value){ int i = 0; unsigned int Ret = 0; for (i = 0; i < 32; i++) { if (!(value >> i)) { break; } else if ( (value >> i) & 0x01) { Ret += pow(2, (31 - i)); } } return Ret;}int main(){ unsigned int data = 0; unsigned int Ret = 0; printf("请输入一个数:\n"); scanf_s("%u", &data); printf("翻转后的数为 :%u\n" ,reverse_bit(data)); system("pause"); return 0;}
2.不使用(a+b)/2这种方式,求两个数的平均值。
#include<stdio.h>#include <windows.h>int main(){ double a = 0; double b = 0; double c = 0; printf("请输入两个数: "); scanf_s("%lf %lf", &a, &b); c = a + ((a - b) / 2.0); printf("平均数为%lf\n",c); system("pause"); return 0;}
3.编程实现:
一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。
请找出这个数字。(使用位运算)
#include<stdio.h>#include <math.h>#include <windows.h>int main(){ int arr[9] = { 0 }; int i = 0; int j = 0; int a = 0; printf("请输入4对相同的数字和一个单独不同的数字\n"); for (i = 0; i < 9; i++) { scanf_s("%d", &arr[i]); } for (i = 0; i < 9; i++) { a ^= arr[i]; } printf("单独的数字是:%d\n", a); system("pause"); return 0;}
4.有一个字符数组的内容为:”student a am i”,请你将数组的内容改为”i am a student”.
要求:
不能使用库函数。只能开辟有限个空间(空间个数和字符串的长度无关)。
#include<stdio.h>#include <math.h>#include <windows.h>int main(){ int i = 0; int j = 0; int R = 13; int L = 0; int k = 14; char arr[14] = { "student a am i" }; char arr2[14] = { 0 }; for (i = 13; i >= 0; i--) { if (arr[i - 1] == ' ' || i == 0) { for (R = i; R < k;) { arr2[L++] = arr[R++]; } k = i - 1; arr2[L++] = ' '; i--; } } for(i = 0; i < 14 ;i++) { printf("%c", arr2[i]); } printf("\n"); system("pause"); return 0;}
阅读全文
0 0
- C语言程序-位操作
- C语言位域操作测试程序
- C语言 位操作
- C语言位操作
- C语言位操作
- C语言位操作
- C语言位操作
- C语言位操作
- c语言位操作
- C语言位操作
- c语言位操作
- C语言-位操作
- C语言位操作
- C语言位操作
- C语言位操作
- C语言位操作
- c语言位操作
- C语言 位操作
- 数据库开发技术 课堂笔记7
- autoCAD2014安装激活
- Android自定义View学习(一):实心圆
- Servlet基础—用户登录
- MaxCompute使用心得
- C语言程序-位操作
- 2017.9.21更新日志
- 3.简单封装ajax
- AI初识
- React native和native交互
- C语言中字符串处理小案例(切割)
- SSH与SSM学习之Spring18——Spring整合JDBC
- 视频项目笔记(2)
- MyBatis框架简单入门