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语言面试题分类-位运算相关推荐

  1. c语言位运算试题及解析,C语言面试题分类-位运算

    1.不用临时变量交换两个整数. a = a ^ b; b = a ^ b; a = a ^ b; 2.实现一个函数,输入一个整数,输出该数二进制表示中1的个数.例如9的二进制是1001,则输出2. i ...

  2. c语言用位运算将一个数清零,C语言学习笔记_位运算

    C语言学习笔记_位运算 知识点记录 基本位运算 按位与:全1为1,见0为0:与1相与无变化,与0相与变为0:可用于特定位清零 按位或:见1为1,全0为0:与1相或变为1,与0相或无变化:可用于特定位置 ...

  3. python语言中1010的二进制表示_Python语言中的按位运算

    (转)位操作是程序设计中对位模式或二进制数的一元和二元操作. 在许多古老的微处理器上, 位运算比加减运算略快, 通常位运算比乘除法运算要快很多. 在现代架构中, 情况并非如此:位运算的运算速度通常与加 ...

  4. 嵌入式linux寄存器位运算,嵌入式linux C语言(一)――位运算的使用

    嵌入式linux C语言(一)――位运算的使用 ARM是内存与IO统一编址,SoC中有很多控制寄存器,通过对这些寄存器进行位运算对这些控制寄存器进行设置,进而控制外设功能.在修改寄存器某些位的过程中不 ...

  5. 小博老师解读经典Java面试题—Java位运算

    [面试原题] 我们经常会看到类似于下面这样的Java面试题: 请编写出效率最高的2乘以8的运算结果. [正确答案] 2<<3 [面试技术点] 面试者是否了解.灵活运用java位运算技术. ...

  6. 一个C语言的基本教程—位运算篇

    文章目录 13.从底层操纵数据--位运算篇 (1). 各种数据的存储方式 #1.无符号整型 #2.有符号整型 #3.字符型 #4.浮点型 (2). 什么是位运算 (3). 移位运算 (4). 位与.位 ...

  7. Go语言bits包的位运算操作基础

    Go语言的bits包实现了预先声明的无符号类型整数的位计数和相关操作函数,所以这个包主要用来处理无符号类型整数相关的位运算操作,下面是常见的位运算操作函数: ① OnesCount函数,函数原型为:f ...

  8. c语言集合交并补 位运算实现

    #include <stdio.h> #include <stdlib.h>/*集合元素的输入*/ long long change_string(char *ch){//将元 ...

  9. 江哥带你玩转C语言 | 09 - C语言进制和位运算

    进制基本概念 什么是进制? 进制是一种计数的方式,数值的表示形式 常见的进制 十进制.二进制.八进制.十六进制 进制书写的格式和规律 十进制 0.1.2.3.4.5.6.7.8.9 逢十进一 二进制 ...

  10. c语言或者cpp中位运算的技巧

    简述 在知乎上看到一个题目,解答很有意思,用的是位运算. 这让我觉得位运算有更多的算法可能,但是却还没被我用过. 这种东西都是第一次看,觉得挺牛的,第二次,第三次看的时候就觉得没什么了.So,大佬们轻 ...

最新文章

  1. 利用JS判断是手机端还是PC端 浏览网站
  2. mysql cluster 数据文件_mysql-【求救】关于MYSQL CLUSTER数据文件存放节点错误问题
  3. 用VS2005开发WinCE程序调试图文教程
  4. Apache2.4使用require指令进行访问控制--允许或限制IP访问/通过User-Agent禁止不友好网络爬虫...
  5. 第十一课:(2)在MINST-FASHION上实现神经网络的学习流程
  6. android 模板设计,Android的设计模式-模板方法模式
  7. Android Canvas API总结和使用方法
  8. 我写了个微信抽奖程序
  9. 网站建设需要多少钱?与什么有关系?
  10. 移动端小说APP体验报告
  11. c语言读取midi文件举例子,c# – 使用NAudio从MIDI文件中读取音符
  12. 自学第一天-阿里云服务器ESC
  13. 动态、静态和伪静态url路径如何分辨
  14. 三阶魔方还原程序心得
  15. Android 圆形旋转菜单
  16. 转贴: 浅析多声道LPCM TRUE HD DTS HD之异同
  17. 【技巧】Excel单元格中添加进度条
  18. BOI Day1 nautilus 题解
  19. 服务器临时文件删除bat,删除临时文件的bat文件
  20. 微信打赏小程序寻投资或买断代码

热门文章

  1. 我们和优秀工程师的差距在哪儿
  2. 一个创业公司CEO的85条感悟
  3. 神器!输错命令,fuck 一下,就能自动纠正!
  4. 如果你没去 GDD,那可真是一种遗憾!
  5. BIO,NIO,AIO总结
  6. iOS开发网络篇—发送GET和POST请求(使用NSURLSession)
  7. 【iOS】打印方法名
  8. interview material
  9. lucene3.5学习笔记03--待续
  10. ASE V15.7下载地址