当前位置: 首页 > news >正文

网站建设首页包括什么软件新闻式软文范例

网站建设首页包括什么软件,新闻式软文范例,wordpress模板影视,wordpress自带主题下载来源 | 爱码有道最近有读者提问:听说腾讯QQ号码的理论最大值是43亿左右,那么用完后会怎样呢?今天,来聊一聊与腾讯QQ号码相关的三个问题,相信大家会有一个比较完整的认识。QQ号的范围是多少?QQ号用完后会怎样…

来源 | 爱码有道

最近有读者提问:听说腾讯QQ号码的理论最大值是43亿左右,那么用完后会怎样呢?

今天,来聊一聊与腾讯QQ号码相关的三个问题,相信大家会有一个比较完整的认识。

  • QQ号的范围是多少?

  • QQ号用完后会怎样?

  • QQ号和bitmap渊源?

关于第一个问题,看完如下的有趣动图之后,肯定就会知道QQ号的最小值和最大值。

11bcf7f14f9bea13be749537551cc8de.gif

一. QQ号的范围是多少?

相信多数朋友都用过QQ,不过估计有些人很久没登录过了。你还记得自己的QQ号码吗?你知道QQ号码有多少位数吗?你知道QQ号码的大小范围吗?别着急,我们会一一来解答。

大家的微信号是字符串形式的,带有一些数字和字母,但QQ号是纯数字。在腾讯QQ后台的程序中,经常看到这样的代码:

unsigned int uin = getFromCookie(cookie, "uin") ;
if ( uin < 10001 )
{log.Error("invalid uin %u", uin) ;return INVALID_UIN ;
}

从这段简单的代码中,我们可以看出很多端倪。其中uin指代的就是QQ号码,有人说uin是unsigned int的缩写,有人说是user ID number的缩写。

不管怎样,uin表示的就是QQ号码,且是unsigned int类型,故QQ号就是4字节无符号整数,共32bit,也就是说,QQ号的取值范围是:[0, 2^32 - 1]。

然而,这只是理论情况,从上面的代码判断可知,QQ号码的最小值是10001, 为什么腾讯要做这种限制呢?其实没有为什么,仅仅是早期的一个设定而已。

对于QQ号码而言,从10001开始,号越小,就大致表明申请时间越早,是一个尊贵号。那么,10001是谁的QQ号呢?很容易猜,不过他实际不用这个号。

2^32 - 1 的值是4294967295, 是一个10位的整数,大约是43亿,这就是QQ号码的理论最大值,你肯定没有见过11位的QQ号,至少目前是不可能存在的。

到目前为止,大家肯定就能理解下图中的数字含义了。在后续面试腾讯时,如果再问到QQ号码相关的问题,一定要意识到QQ号码的大小范围,会有帮助的。

d1e21d27f13438013f3d7c9cf85d6481.png

二. QQ号用完后会怎样?

既然QQ号码的值是有范围的,那么自然有疑问:如果这么多QQ号码都被申请完后,结果会怎样呢?这是一个有趣的问题,但别替腾讯担心这些根本问题。

对于很多互联网公司而言,账号体系就是生命线,对腾讯尤其如此。最近几年,微信的势头超过QQ,QQ的月活远低于10亿,注册了的QQ也远小于43亿个。

所以,完全不用担心QQ号会超过43亿,在相当长的一段时间内,43亿是达不到的。而且,腾讯现在做了各种限制,并不会允许一个人无限地注册QQ号码。

另外,如果一个QQ号被注册了,但长期不登录,那么就相当于占着茅坑不拉屎,浪费资源。此时,腾讯也会考虑对QQ号进行回收,具体的逻辑就不说了。

然而,凡事总有万一,如果有一天QQ号码突破了43亿,那也可以,对腾讯来说,意味着业务蓬勃发展,也是好事。那么,QQ后台很多代码就需要重构了。

aa1f1d5594cbc1270c6f8e34ebe25967.png

三. QQ号和bitmap渊源

在腾讯的面试题中,经常以QQ号码为背景进行考察。比如典型题目:文件中有40亿个QQ号码,如何进行去重?

如果没有敏感意识到使用bitmap,就是很糟糕很不应该的事情,说明基本没有好好去准备啊。bitmap图解如下:

f2104cc4855cabb3b5d39cbc080794ed.png

unsigned char共8位,取值范围是[0, 255],这个unsigned char的数值是255,能标识0~7这些数字都存在。

同理,如下这个unsigned char类型的值是254,它对应的含义是:1~7这些数字是存在的,而数字0是不存在的:

e9b5925f9147876c3a5fa41764a0088e.png

由此可见,一个unsigned char类型的数据,可以标识0~7这8个整数的存在与否,这是很好理解的,以此类推:

  • 一个unsigned int类型数据可以标识0~31这32个整数的存在与否。

  • 两个unsigned int类型数据可以标识0~63这64个整数的存在与否。

说白了,也就是4B的内存,可以标识32个整数的存在与否。如果还不清楚的话,我们来画个表格,逐步推演一下:

内存大小
标识数的范围
4B
0~31
8B
0~63
16B
0~127
...
...
512MB
0~2^32 - 1

由此可见,512MB的内存大小,刚好可以用来标识所有的QQ号码的存在与否,一切迎刃而解。

下面,我们看一下bitmap的程序,很好懂,也很实用,轻轻松松地实现了标记功能,顺便去重。

#include <iostream>
#include <set>
#include <cstring>
using namespace std;#define N 20  // 考究0~19这20个数字
#define SHIFT 5
#define MASK 0x1f
unsigned int a[1 + N / 32] = {0}; // 设置第i位为1, 让它处于点亮状态
void setOne(int i)
{a[i >> SHIFT] |= (1 << (i & MASK));
}// 设置第i位为0, 让它处于熄灭状态
void setZero(int i)
{a[i >> SHIFT] &= ~(1 << (i & MASK));
}// 获取第i位的状态
int getState(int i)
{return (a[i >> SHIFT] & (1 << (i & MASK))) && 1;
}int main(void) 
{// 把1,3,1,4,9,9,9这几个值的状态点亮,即状态为1setOne(1); setOne(3);setOne(1);setOne(4);setOne(9);setOne(9);setOne(9);int i = 0;for(i = 0; i < N; i++){cout << i << "对应的状态为:--->" << getState(i) << endl; // 获取状态}cout << endl;return 0;
}

编译运行一下,结果为:

0对应的状态为:--->0
1对应的状态为:--->1
2对应的状态为:--->0
3对应的状态为:--->1
4对应的状态为:--->1
5对应的状态为:--->0
6对应的状态为:--->0
7对应的状态为:--->0
8对应的状态为:--->0
9对应的状态为:--->1
10对应的状态为:--->0
11对应的状态为:--->0
12对应的状态为:--->0
13对应的状态为:--->0
14对应的状态为:--->0
15对应的状态为:--->0
16对应的状态为:--->0
17对应的状态为:--->0
18对应的状态为:--->0
19对应的状态为:--->0

QQ号码和bitmap的渊源就是如此,以后在面试时,不可忽视bitmap的妙用哦,也希望大家看完这篇文章后,有所收获,心情愉快。最后,来画一张动图玩玩,希望大家喜欢。

6ee96cac4111f77069d01e903a57f515.gif

aa74c2be4a8bbc9abd37e0f774f6634b.png

http://www.lbrq.cn/news/2502523.html

相关文章:

  • icp备案查询怎么查询谷歌搜索优化
  • 购物商城网站建设南宁百度seo建议
  • 国内优秀的网站设计网络营销怎么做
  • 苏州城乡住房建设局网站优化公司哪家好
  • 网站建设公司简介模板建网站费用
  • 衡水网站建设谷歌chrome浏览器
  • 潍坊高新建设局网站网站设计方案模板
  • 茶企业网站建设模板摘抄一篇新闻
  • 蒙文网站建设的意义网站seo置顶
  • it公司做网站用什么软件seo免费工具
  • 东莞品牌网站建设报价企业文化的重要性
  • 开发做游戏的网站谷歌搜索入口手机版
  • 房屋租赁网站开发模版长沙seo霜天博客
  • 重庆有没有做网站的网络推广工具有哪些
  • 贵州公司网站建设比选公示2022最新小学生新闻
  • 太原建设设计公司网站企业建站公司热线电话
  • 网站优化排名易下拉用法网站建设黄页在线免费
  • 邢台网站建设哪家公司好邯郸seo优化公司
  • 网站建设怎么报价网站优化公司大家好
  • 做外贸的网站要多少钱线下推广方法及策略
  • 快速优化网站建设搜索引擎排名优化方案
  • 无法连接网站互联网营销师培训教程
  • 做衬衣的网站今日国际新闻头条15条
  • 如何在门户网站做推广方案福州关键词排名软件
  • 自己做套现要建网站吗临沂seo优化
  • 网站导航条用什么做北京效果好的网站推广
  • 成都装修网站建设seo企业推广案例
  • 建站工作室 网站建设工作室百度网址大全网站大全
  • app浏览器源码大全网站微商营销
  • win2003 wordpress景德镇seo
  • GaussDB 查看会话连接数
  • 对于ui=f(state)的理解(react)
  • python毕业设计案例:基于python django的抖音数据分析与可视化系统,可视化有echarts,算法包括lstm+朴素贝叶斯算法
  • C/C++核心知识点详解
  • Qt C++ GUI 函数参数速查手册:基础与布局
  • 设备独立性软件-高速缓存与缓冲区