C++面试题集锦:二进制相关

2018年1月18日 评论

例题一

不使用额外变量,通过一个表达式判断整数n是否为2^x,不能使用循环语句。

思路

2^x = 2, 4, 8, 16 ...,二进制形式为10, 100, 1000, 10000,如果n减1后和n做与运算答案为0,就说明它满足2^x

答案

例题二

f(729, 271)

思路

x&y是相同的位与,等于x和y相同位的和的一半。(x^y)是取出x和y不同位,>>1也相当于除以2。

所以整个表达式合起来就是x和y相同位的一半加上x和y不同位的一半——即x和y的和的一半

答案

C/C++中struct和class的区别 C/C++

C/C++中struct和class的区别

一、class和struct的区别 C++中class和struct的区别: 继承权限,struct的默认继承权限为public,class的默认继承权限为private。 访问权限,struct的默...
指针和引用的区别 C/C++

指针和引用的区别

区别: 指针是一个变量类型,引用只是一个变量别名。 指针可以不用初始化,引用必须初始化。 指针可以指向空地址,引用不能指向空。 指针初始化后可以修改,引用不能修改。 其他: 引用本质上也是一个指针,内...
面试题:转换十六进制字符串到十六进制数据 C/C++

面试题:转换十六进制字符串到十六进制数据

前几天面试时候遇到的问题: 给定一个十六进制字符串"AB",转换成十六进制的整数0xab输出。 临时接到的面试通知,赶场子过去一坐下就给个题目,说实话面试了一两个星期是第一次做这方面的面试题。没有思想...
匿名

发表评论

匿名网友