算法
文章平均质量分 92
ShadowySpirits
新博客:blog.lv5.moe
展开
-
反码和补码的数学原理
全文转载自我的博客,更好的阅读体验和更多内容欢迎移步SSpiritsの秘密基地本文介绍了使用反码和补码的加法代替减法,并分析了这样做背后的数学原理反码与补码的表示原码的表示方法:符号位加上它的绝对值,即用第一位表示符号,其余位表示值。如果是 888 位二进制:[+1]=[00000001]原[−1]=[10000001]原\begin{array}{l}[+1] = [00000001]_原 \\[-1] = [10000001]_原\end{array}[+1]=[0000000原创 2021-08-25 21:11:03 · 401 阅读 · 0 评论 -
由 Math.abs 谈负数转换与绝对值运算
全文转载自我的博客,更好的阅读体验和更多内容欢迎移步SSpiritsの秘密基地本文通过分析一个 Java 中 Math.abs() 误用引发的 bug 介绍了计算机中数的储存、负数转换与绝对值运算背景最近遇到了一个奇妙深刻的 bug:我们的系统中使用了一个 int 型的变量来计数,这个计数器变量的绝对值取模作为某个 list 的 index,但是今天出现了异常 IndexOutOfBoundsException// 满足某些条件计数器自增int count = 0;count++;int原创 2021-08-25 21:02:36 · 685 阅读 · 0 评论