如何实现短链服务 short url-02-短链的实现原理
什么是短链接
顾名思义,短链接即是长度较短的网址。
通过短链接技术,我们可以将长度较长的链接压缩成较短的链接。
并通过跳转的方式,将用户请求由短链接重定向到长链接上去。
短链接主要用在诸如微博,BBS等对帖子字数有限制的网站,通过使用短链接,用户可以把注意力放在帖子的内容上,而不是在担心链接超长的问题。这
里以百度的 dwz.cn 短链接服务为例,我们使用百度搜索”hello wo...
2022-06-02 01:22:02 |
Tool
如何实现短链服务 short url-01-long 值进行 Base64 编码原理详解
long 值进行 Base64 编码原理详解
分析一下long值;
1、有符号long值,64bit,8字节,取值范围 -2^63——2^63-1,第一位符号位,负数为1,正数为0;
2、正数,符号位0,后63位为正数值;
3、负数,符号位1,整个64位取反、加1,加负号即为负数值;
Base64 是做什么?
把任意二进制数据转换为可显示字符,总共64种可显示字符。
具体转换规...
2022-06-02 01:22:02 |
Tool
Solidity-18-Inline Assembly
Inline Assembly
您可以使用接近以太坊虚拟机的语言将 Solidity 语句与内联汇编交错。这为您提供了更细粒度的控制,这在您通过编写库来增强语言时特别有用。
在 Solidity 中用于内联汇编的语言称为 Yul,它记录在其自己的部分中。本节将仅介绍内联汇编代码如何与周围的 Solidity 代码交互。
警告
内联汇编是一种在低级别访问以太坊虚拟机的方法。这绕过了几个...
2022-05-22 01:22:02 |
Lang
Solidity-17-Contracts
Contracts
Solidity 中的契约类似于面向对象语言中的类。
它们在状态变量中包含持久数据,以及可以修改这些变量的函数。
在不同的合约(实例)上调用函数将执行 EVM 函数调用,从而切换上下文,使得调用合约中的状态变量不可访问。
任何事情发生都需要调用合约及其函数。
以太坊中没有“cron”概念来自动调用特定事件的函数。
创建合同
合约可以通过以太坊交易“从外部”创...
2022-05-22 01:22:02 |
Lang
Solidity-16-Expressions and Control Structures
控制结构
从花括号语言中知道的大多数控制结构都可以在 Solidity 中使用:
有:if、else、while、do、for、break、continue、return,具有 C 或 JavaScript 中已知的常用语义。
Solidity 还支持 try/catch 语句形式的异常处理,但仅适用于外部函数调用和合约创建调用。 可以使用 revert 语句创建错误。
条件句不能省...
2022-05-22 01:22:02 |
Lang
Solidity-15-Units and Globally Available Variables
以太单位 Ether Units
文字数字可以采用 wei、gwei 或 ether 的后缀来指定 Ether 的子面额,其中不带后缀的 Ether 数字被假定为 Wei。
assert(1 wei == 1);
assert(1 gwei == 1e9);
assert(1 ether == 1e18);
小面额后缀的唯一效果是乘以十的幂。
笔记
0.7.0 版中删除了...
2022-05-22 01:22:02 |
Lang
Solidity-14-Conversions between Elementary Types
隐式转换 Implicit Conversions
在某些情况下,编译器会在赋值期间、将参数传递给函数以及应用运算符时自动应用隐式类型转换。
一般来说,如果在语义上有意义并且没有信息丢失,则值类型之间的隐式转换是可能的。
例如,uint8 可转换为 uint16,int128 可转换为 int256,但 int8 不可转换为 uint256,因为 uint256 不能保存 -1 等值。...
2022-05-22 01:22:02 |
Lang
Solidity-13-types Operators
Operators
即使两个操作数的类型不同,也可以应用算术和位运算符。
例如,您可以计算 y = x + z,其中 x 是 uint8,z 的类型为 int32。在这些情况下,将使用以下机制来确定计算运算的类型(这在溢出的情况下很重要)和运算符结果的类型:
如果右操作数的类型可以隐式转换为左操作数的类型,则使用左操作数的类型,
如果左操作数的类型可...
2022-05-22 01:22:02 |
Lang