编程里的corner case

数组

概念

长度

中间值

先想一个问题, 为什么int的除法本质是什么?

右移操作. 要知道右移动的时候丢掉了最后一位的信息, 对于xxx1和xxx0来说右移的结果都是一样的.

于是我们知道,

  1. 00 -> 00
  2. 01 -> 00
  3. 10 -> 01
  4. 11 -> 01

所以每一个偶数和比他大1的数, 除以2得到的值都是偶数除以2的值, 看例子

3的下一位是2, 2/2=1; 11的下一位是10, 10/2=5;

8的上一位是9, (8,9)/2都是4 ...

编程中,因为我们总是用0当做下标, 这个时候一个

倒数

因为我们不说倒数第0个元素, 而是从1开始的. 所以倒数第一个元素要这么表示

[size - 1] = [size] - 1

倒数第k个元素的下标是 size - k