C语言面试题分类-位运算
1.不用临时变量交换两个整数。
a = a ^ b;
b = a ^ b;
a = a ^ b;
2.实现一个函数,输入一个整数,输出该数二进制表示中1的个数。例如9的二进制是1001,则输出2。
int check_count_fun( int number)
{while(number != 0){number = (number - 1) & number; //与本身减1作与运算,所得数将本身最右侧1变为0。count++; }return count;
}int main()
{int count = check_count_fun(3);printf("include 1 number is %d\n", count);
}
错误代码如下:有符号数会造成死循环,负数移位最高位补1,保证负数。
int NumberOf1(int n)
{int count = 0;while(n){if(n & 1){count++;}n = n >> 1;}return count;
}
3.
判断一个数是否为 2 的 k 次方.
n & ( n - 1 ) 如果结果为 0, 是; 反之, 不是.
n & ( n - 1 ) 就是去掉最左边一个 1.
4.二进制的反转,可用于大小端的转换:
如,将一个64位整数转化为网络字节序?
#define HTON64(x) ((x>>56&0xff)|(x>>40&0xff00)|\
(x>>24&0xff0000)|(x>>8&0xff000000)) |\
(x<<8&0xff00000000)|(x<<24&0xff0000000000) |\
(x<<40&0xff000000000000)|(x<<56&0xff00000000000000)
转载于:https://www.cnblogs.com/mcy0808/p/8693804.html
C语言面试题分类-位运算相关推荐
- c语言位运算试题及解析,C语言面试题分类-位运算
1.不用临时变量交换两个整数. a = a ^ b; b = a ^ b; a = a ^ b; 2.实现一个函数,输入一个整数,输出该数二进制表示中1的个数.例如9的二进制是1001,则输出2. i ...
- c语言用位运算将一个数清零,C语言学习笔记_位运算
C语言学习笔记_位运算 知识点记录 基本位运算 按位与:全1为1,见0为0:与1相与无变化,与0相与变为0:可用于特定位清零 按位或:见1为1,全0为0:与1相或变为1,与0相或无变化:可用于特定位置 ...
- python语言中1010的二进制表示_Python语言中的按位运算
(转)位操作是程序设计中对位模式或二进制数的一元和二元操作. 在许多古老的微处理器上, 位运算比加减运算略快, 通常位运算比乘除法运算要快很多. 在现代架构中, 情况并非如此:位运算的运算速度通常与加 ...
- 嵌入式linux寄存器位运算,嵌入式linux C语言(一)――位运算的使用
嵌入式linux C语言(一)――位运算的使用 ARM是内存与IO统一编址,SoC中有很多控制寄存器,通过对这些寄存器进行位运算对这些控制寄存器进行设置,进而控制外设功能.在修改寄存器某些位的过程中不 ...
- 小博老师解读经典Java面试题—Java位运算
[面试原题] 我们经常会看到类似于下面这样的Java面试题: 请编写出效率最高的2乘以8的运算结果. [正确答案] 2<<3 [面试技术点] 面试者是否了解.灵活运用java位运算技术. ...
- 一个C语言的基本教程—位运算篇
文章目录 13.从底层操纵数据--位运算篇 (1). 各种数据的存储方式 #1.无符号整型 #2.有符号整型 #3.字符型 #4.浮点型 (2). 什么是位运算 (3). 移位运算 (4). 位与.位 ...
- Go语言bits包的位运算操作基础
Go语言的bits包实现了预先声明的无符号类型整数的位计数和相关操作函数,所以这个包主要用来处理无符号类型整数相关的位运算操作,下面是常见的位运算操作函数: ① OnesCount函数,函数原型为:f ...
- c语言集合交并补 位运算实现
#include <stdio.h> #include <stdlib.h>/*集合元素的输入*/ long long change_string(char *ch){//将元 ...
- 江哥带你玩转C语言 | 09 - C语言进制和位运算
进制基本概念 什么是进制? 进制是一种计数的方式,数值的表示形式 常见的进制 十进制.二进制.八进制.十六进制 进制书写的格式和规律 十进制 0.1.2.3.4.5.6.7.8.9 逢十进一 二进制 ...
- c语言或者cpp中位运算的技巧
简述 在知乎上看到一个题目,解答很有意思,用的是位运算. 这让我觉得位运算有更多的算法可能,但是却还没被我用过. 这种东西都是第一次看,觉得挺牛的,第二次,第三次看的时候就觉得没什么了.So,大佬们轻 ...
最新文章
- 利用JS判断是手机端还是PC端 浏览网站
- mysql cluster 数据文件_mysql-【求救】关于MYSQL CLUSTER数据文件存放节点错误问题
- 用VS2005开发WinCE程序调试图文教程
- Apache2.4使用require指令进行访问控制--允许或限制IP访问/通过User-Agent禁止不友好网络爬虫...
- 第十一课:(2)在MINST-FASHION上实现神经网络的学习流程
- android 模板设计,Android的设计模式-模板方法模式
- Android Canvas API总结和使用方法
- 我写了个微信抽奖程序
- 网站建设需要多少钱?与什么有关系?
- 移动端小说APP体验报告
- c语言读取midi文件举例子,c# – 使用NAudio从MIDI文件中读取音符
- 自学第一天-阿里云服务器ESC
- 动态、静态和伪静态url路径如何分辨
- 三阶魔方还原程序心得
- Android 圆形旋转菜单
- 转贴: 浅析多声道LPCM TRUE HD DTS HD之异同
- 【技巧】Excel单元格中添加进度条
- BOI Day1 nautilus 题解
- 服务器临时文件删除bat,删除临时文件的bat文件
- 微信打赏小程序寻投资或买断代码