【笔试题】整理一

给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中。 【腾讯】 40亿占多少个字节:4G 10个亿需要1G 一个整型需要4个字节,40亿个则需要16G 由于如果我们直接使用这种方式去存储需要16个G显然这是不可能的,因此我们需要用到下面的方式去存储,采用位图 我们用一个Bit位去标识一个数存在还是不存在 我们都是到一般字节是存储的最小单位 那么一个字节有8个位,巧妙的利用这一点来实现我们的位图 比如10我们先确定他存在第几个字节,再去确定它在第几个 阅读详情

1.

struct mybitfields 
{ 
unsigned short a : 4; 
unsigned short b : 5; 
unsigned short c : 7; 
}test
void main(void)  
{ 
int i; 
test.a=2; 
test.b=3; 
test.c=0;
i=*((short *)&test); 
printf("%d/n",i); 
}

知识点:位域

使用位域的主要目的是压缩存储,其大致规则为:
1)如果相邻位域字段的类型相同,且其位宽之和小于类型的sizeof大小,则后面的字
段将紧邻前一个字段存储,直到不能容纳为止;
2)如果相邻位域字段的类型相同,但其位宽之和大于类型的sizeof大小,则后面的字
段将从新的存储单元开始,其偏移量为其类型大小的整数倍;
3)如果相邻的位域字段的类型不同,则各编译器的具体实现有差异;
4) 如果位域字段之间穿插着非位域字段,则不进行压缩;
5) 整个结构体的总大小为最宽基本类型成员大小的整数倍

分配的成员a-4位的空间, b-5位,c-7位,一共是16位,正好两个字节。下面画一个简单的示意:
变量名:位数
test    :15 14 13 12 11 10 9 |8 7 6 5 4 |3 2 1 0
test.a :                                                 |0 0 1 0
test.b :                                 |0 0 0 1 1 |
test.c :           0 0 0 0 0 0 0 |

在执行i=*((short *)&test);时,取从地址&test开始两个字节(short占两个字节)的内容转化为short型数据,即为0x0032,再转为int型为0x00000032,即50。输出的结果就是50。

注意:关于位结构体在内存中的存储问题
在C结构体中,如果一个位域A在另一个位域B之前定义,那么位域A将存储在比B小的位地址中。
如果一个位域有多个位时,各个位的排列顺序通常是按CPU的端模式(Endianess)来进行的,即在大端模式(bigendian)下,高有效位在低位地址,小端模式则相反。

2.。In C++, what does "explicit" mean? what does "protected" mean?

C++中的explicit关键字用来修饰类的构造函数,表明该构造函数是显式的,在某些情况下,我们要求类的使用者必须显示调用类的构造函数时就需要使用explicit,反之默认类型转换可能会造成无法预期的问题。

class Test1
{
public:
Test1(int n) { num = n; } //普通构造函数
private:
int num;
};
class Test2
{
public:
explicit Test2(int n) { num = n; } //explicit(显式)构造函数
private:
int num;
};
int main()
{
Test1 t1 = 12; //隐式调用其构造函数, 成功
Test2 t2 = 12; //编译错误,不能隐式调用其构造函数
Test2 t3(12); //显式调用成功
return 0;
}
Test1的构造函数带一个int型的参数,t1隐式转换成调用Test1的这个构造函数。而Test2的 构造函数被声明为explicit(显式),这表示不能通过隐式转换来调用这个构造函数,因此t2出现编译错误。
普通 构造函数能够被隐式调用。而explicit 构造函数只能被显示调用。

 3. 在C++的一个类中声明一个static成员变量有没有用?

    在C++类的成员变量被声明为static(称为静态成员变量),意味着它为该类的所有实例所共享,也就是说当某个类的实例修改了该静态成员变量,也就是说不管创建多少对象,static修饰的变量只占有一块内存。其修改值为该类的其它所有实例所见;而类的静态成员函数也只能访问静态成员(变量或函数)。static是加了访问控制的全局变量,不被继承。

例如:可以用于保存该类被实例化的次数

//.h
class Test
{
public:
    Test(); //普通构造函数
private:
    static int times;
public:
    static void TimesPlus();
    static int GetTimes();
};

//.cpp
int Test::times = 0; //注意static成员变量的初始化

Test::Test()
{
    TimesPlus();
}
int Test::GetTimes()
{
    return times;
}
void Test::TimesPlus()
{
    times++;
}


2023前端开发面试笔试题(一) 自整理题库收藏共勉(不断更新) 简述diff算法过程 答:执行diff算法就是调用patch函数,比较新旧节点,然后不断给真实的DOM打补丁。patch函数接收两种参数,vnode和oldVnode,两个参数分别代表了新节点和旧节点。此时用到了sameVnode(oldVnode, vnode),如果返回的是true,那么就执行patchVnode,如果返回的是false,那么就将vnode替换oldVnode,将新节点替换给旧节点。 阅读详情

相关推荐

二阶锥松弛在配电网最优潮流计算中的应用(IEEE33节点配电网最优潮流算例matlab程序)(yalmip+cplex)

文献[7]建立了以支路潮流计算为基础的OPF模型,针对OPF中的非凸性约束,采用SOCR技术将其松弛为二阶锥约束,整个 OPF 模型则被转化为二阶锥规划( Second Order Cone Programming,SOCP)问题,对其求解可以得到全局最优解。其次结合辐射型配电网潮流特点建立支路潮流约束,并考虑配电网中的可控单元,包括分布式电源和离散、连续无功补偿装置,建立其出力约束,该模型为非凸非线性模型;式中,αj,t和βij,t分别为t时段内节点i电压的二次方和支路ij电流的二次方。

weixin_47365903的博客 1万+

区块链

预备知识: 位域 struct bs {  int a:8;  int b:2;  int c:6; }data; 表示a占8位,b占2位,c占6位 一个位域必须存储在同一个字节中,不能跨两个字节。如一个字节所剩空间不够存放另一位域时,应从下一单元起存放该位域。也可以有意使某位域从下一单元开始。 由于位域不允许跨两个字节,因此...

人总是要有梦想的QAQ的博客 160

MMI分束器仿真优化:用Lumerical FDTD实现95%耦合效率的实战技巧

本文详细介绍了使用Lumerical FDTD软件对MMI分束器进行仿真优化的实战技巧。通过构建高保真模型、精确配置光源与边界条件,并重点优化波导结构与taper设计,系统性地将器件的耦合效率提升至95%以上。文章还分享了利用参数扫描、varFDTD加速等高级方法,帮助硅光芯片设计工程师高效实现高性能MMI分束器设计。

rainy的博客 772

一个文件中有40亿个整数,每个整数为四个字节,内存为1GB,写出一个算法:求出这个文件里的整数里不包含的一个整数

<br />4个字节表示的整数,总共只有2^32约等于4G个可能。<br />为了简单起见,可以假设都是无符号整数。<br />分配500MB内存,每一bit代表一个整数,刚好可以表示完4个字节的整数,初始值为0。基本思想每读入一个数,就把它对应的bit位置为1,处理完40G个数后,对500M的内存遍历,找出一个bit为0的位,输出对应的整数就是未出现的。<br />算法流程:<br />1)分配500MB内存buf,初始化为0<br />2)unsigned int x=0x1;<br />  for e

jiaych的专栏 5309

GPU大规模集群运维

CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的通用并行计算平台和程序模型,该架构使GPU能够解决复杂的计算问题。它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。开发人员可以使用C语言来为CUDA架构编写程序,所编写出的程序可以在支持CUDA的处理器上以超高性能运行。CUDA官方文档CUDA的软件环境允许开发者使用C++等高级编程语言开发程序。

weixin_42795092的博客 1738

【ISP图像处理】Demosaic去马赛克技术演进与边缘优化策略

本文深入解析了ISP图像处理中的Demosaic(去马赛克)技术。从Bayer阵列原理出发,梳理了从双线性插值、Hamilton-Adams边缘导向算法到利用通道相关性与自相似性的技术演进历程,并重点探讨了针对边缘与纹理伪影的优化策略,为工程实践中的算法选型与硬件协同设计提供了专业指导。

weixin_29091445的博客 388

判断数字是否出现在40亿个数中?

<br />给40亿个不重复的unsigned int的整数,没排过序的,然后再给几个数,如何快速判断这几个数是否在那40亿个数当中?<br /> <br />思路:<br />unsigned int 的取值范围是0到2^32-1。我们可以申请连续的2^32/8=512M的内存,用每一个bit对应一个unsigned int数字。首先将512M内存都初始化为0,然后每处理一个数字就将其对应的bit设置为1。当需要查询时,直接找到对应bit,看其值是0还是1即可。<br /> <br />原文链接:http

CNnumen 3111

数模笔记_多变量最优化计算之牛顿法

Date: 2_22 Name: Guo Yehao Theme: Calculation in Optimality with multiple variables Reference: 数学建模方法与分析(华章) 在上一节中,我们讨论多变量最优化计算中的随机搜索算法,它的精度并不是众多算法中最高的。在精度问题上,有的时候问题本身就带有明显的误差性,以至于我们不能将其忽略,比如上一节消防站部署的问题,我们在区域划分时就有了误差,因此我们并不需要对结果要求很高的精确度,所以用一些比较粗略的算法就可以.

weixin_45358177的博客 2415

哈希变形—位图(给定40亿个不重复的无符号数整数,没排过序,给一个无符号整数,如何快速判断一个数是否在这40亿个数中)

#include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; #include&lt;assert.h&gt; #include&lt;string.h&gt; typedef struct BitMap { size_t* _bits;// size_t _range;// }BitMap; void BitMapInit(BitMap* bm, si...

mt_09的博客 481

PC 端微信页面拆分及 JavaFx 使用

一、前言 对于一个知识点的学习过程来说,往往使用自己熟悉的工具或方式才更易于上手。因为所有同类型的知识点在抛出复杂的流程拨云见日后,所能得到的几乎都是同样的设计思想和实现理论。 在 Java 语言桌面版开发中,直至目前共提供了三套 UI 开发方式;Awt、Swing、JavaFx,以及一些扩展组件 SWT 等。在这三套 UI 组件中,JavaFx 是最新也是最为好用的,因为他提供了丰富的功能,以及...

bugstack虫洞栈 3610

笔试题整理(一)

本次题目出自某大型安全公司(开发岗(只招985,211))笔试题: 扩展知识: 运行时异常(RuntimeException):在程序运行的时候就会出现的异常 1.NullPointerException:空指针异常 2.indexOutofBoundsException:索引超出了范围 3.ArrayIndexOutOfBoundsException:数组索引越界 4.NumberFormatException:数值转换异常 5.ClassCastException:类型转换异常 6.Arithmeti

cdut2016的博客 720

ERROR: Could not install packages due to an OSError: [Errno 2] No such file or directory解决方案

本文主要介绍了ERROR: Could not install packages due to an OSError: [Errno 2] No such file or directory解决方案,希望能对使用Python的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 11万+

C++ 笔试题整理 一

1、下面的排序算法中,初始数据集的排列顺序对算法的性能无影响的是() A、插入排序 B、堆排序 C、冒泡排序 D、快速排序答案: A (插入排序:最优时间复杂度O(n)最差时间复杂度O(n^2)平均时间复杂度O(n^2) 冒泡排序:最优时间复杂度O(n)最差时间复杂度O(n^2)平均时间复杂度O(n^2)

不忘初心的专栏 1085

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

常见C++笔试题整理(一)

本文整理了C++笔试中常见的面试题及解析,涵盖多个重要知识点:1. const指针的不同形式及区别;2. 引用与指针的核心差异;3. 拷贝构造函数与赋值运算符的调用场景;4. 字符串逆序实现;5. 位域结构的内存计算;6. 进程间通信方式;7. 递归实现整数倒序输出;8. 虚函数的多态特性等。同时包含典型编程问题如内存泄漏检查、数组越界防范等,并提供了算法题(如硬币称重)的解决思路。这些题目涉及C++基础语法、面向对象特性、内存管理、位操作等核心概念,适合准备技术面试时查漏补缺。

程序猿老樊的博客 423

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

谷歌笔试题整理(一)

IT名企面试:谷歌笔试题 . 谷歌是不少IT人都想去的企业,笔试和面试是必经之路,如今校园招聘的季节。袭击和整理IT名企经典笔试题是拿到offer的捷径!为此在网络上整理了些很经典的笔试题目和答案,细致阅读必有帮助!! 1.谷歌笔试题:推断一个自然数是否是某个数的平方。当然不能使用开方运算。 如果待推断的数字是 N。 方法1: 遍历从1到N的数字,求取...

weixin_34024034的博客 200

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Java笔试题整理一

1、final, finally, finalize 的区别 final:在java中,final可以用来修饰类,方法和变量(成员变量或局部变量) 修饰类 当用final修饰类的时,表明该类不能被其他类所继承。当我们需要让一个类永远不被继承,此时就可以用final修饰,但要注意: final类中所有的成员方法都会隐式的定义为final方法 修饰方法 final修饰方法意味着“最后的、最...

fangyuwuzhu的博客 180

Java笔试题整理(一)— 20190316

0316 笔试题整理 前言 最近开始刷java笔试题了,于是将一些刷题过程中遇到的错题记录在博客里,以便日后回顾复习,如题目解释中有不足望各位大神批评指正! 1. 代码String str=”123456a”;int i=Integer.parseInt(str);会报异常____________________ 【分析】 parseInt是将字符串参数解析为带符号的十进制整数。 字符串中的字符都...

Alisa_ljn的博客 735

MySQL笔试题整理(一)

小白学习之路,MySQL笔试题重新整理

OrangeTreeTest的博客 686

软件测试笔试题整理汇总(一)(附答案)

【注】:根据网络搜集资料汇总得来,答案或有偏颇,注意批判性采纳。

weixin_44762483的博客 1829

手撕java笔试题之易错题整理(一)

手撕java基础笔试题之易错题总结(一) 今日小日记: 今天刷了30个java笔试题,直接错了5个,心都在滴血,为了记住错题及相关知识点,将五个错题和相关知识点记录下来!然后知识点是根据自己的想法写的可能解释不一定对,如果解释有误,请联系作者 1、对Map的用法 解析:map和sortedMap属于接口,不可以一new的方式创建,HashMap基于Hash表实现Map接口的类,并允许null的值和null的键,TreeMap通过红黑树实现Map接口,Key不可以为null,会报NullPointerExc

程序员小王的博客 727

小红书2020校招数据分析笔试题卷一[题目整理]

1.对于任意事件A、B,有如下( )成立 A.P(AB)<=(P(A)+P(B))/2 B.P(AB)<=P(A)P(B) C.P(AB)>=(P(A)+P(B))/2 D.P(AB)>=P(A)P(B) 标题,有助于目录的生成 Sol: A P(AB) = P(A)*P(A|B) = P(B)*P(B|A) 2 * P(AB) = P(A)*P(A|B) + P(B)*P(B|A) P(AB)<=(P(A)+P(B))/2 3.失语症是指由于神经中枢病损导致抽象信号思维障碍,

weixin_42956279的博客 2707

C++笔试题整理(一)

资料来源:http://blog.youkuaiyun.com/dongfengsun/article/details/1541926 1.已知String类定义如下: class String { public: String(const char *str = NULL); // 通用构造函数 String(const String &another); // 拷贝构造函数 ~

Android系统攻城狮 643

Servlet(一,熬夜整理华为最新Java笔试题

5.再次访问服务器时,客户端请求中就携带着之前保存的Cookie中保存的值,服务器就根据Cookie就能够知道客户端的身份是什么了。 在HttpServletRequest中也可以获取到Cookie的值,getCookies 获取所有的Cookie中的键值对。 在HttpServletResponse中,addCookie方法,往响应中设置Cookie键值对 Cookies 过期时间 有时候保存在浏览器中的用户信息和密码过一段时间就要重新登录,通过setMaxAge 方法给Cookie设置过期时间,浏览器拿

m0_61439820的博客 296
上一篇: 【算法】求二进制中1的个数
下一篇: 【MFC】按钮点击拷贝到剪切板
Kayee2012
博客等级 码龄18年 27粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值