判断一个整数的二进制第n位是否为1
我们经常用0和1来表示多个权限的有无,或者多个选项是否勾选,然后把这些0和1按顺序组合成一个二进制数,再把它转成十进制存到数据库中。但是从数据库中取出十进制数后,怎么验证具有哪些权限或者勾选了哪些选项呢?即:怎样判断该十进制数对应的二进制数第n位是0还是1呢?
我们经常用0和1来表示多个权限的有无,或者多个选项是否勾选,然后把这些0和1按顺序组合成一个二进制数,再把它转成十进制存到数据库中。但是从数据库中取出十进制数后,怎么验证具有哪些权限或者勾选了哪些选项呢?即:怎样判断该十进制数对应的二进制数第n位是0还是1呢?
1、为什么数计算机内存中用2的补码表示
2、什么是2的补码?
3、为什么要用2的补码?
4、2的补码=反码+1的原因?
在看https的定义的时候,常常有https是http+ssl/tls这样的说法,相信很多人搞不清楚为什么要叫ssl/tls?为什么不是直接叫http+ssl或直接叫http+tls?为什么这这两个要一起说?难道说https有两套实现方式?一套是http+ssl,一套是http+tls?它们到底有什么区别?
第一种用法:公钥加密,私钥解密。—用于加解密
第二种用法:私钥签名,公钥验签。—用于签名
简单的说,因为计算机系统是用二进制的,所以都是以210=1024为进位的(比如1KB=210Byte=1024Byte),因为计算机技术的发展,几乎一夜之间很多非专业人士买了电脑,销售人员为了方便向这些人解释KB/MB/TB之间的关系,所以把存储设备各单位之间的进位做成103而不是210,原因是这些人都知道1kg=1000g,1km=1000m,所以为了方便理解,就把1024改成1000(这样普通人就很容易理解,因为1kg=1000g,所以1kb=1000b是很容易理解的事),这样就容易向人们解释。
## 1、计算机开始之初,二进制与Hex
计算机这个东西,最初是美国人发明的。作为一个可以计算、存储、通信的复杂玩意,最最基本的功能,应该是能读懂人类让它干的事情。所以呢,我们得构造一个计算机能用的语言,这个语言计算机能看懂,人也能看懂,这样才能交流嘛。