【发布时间】:2012-07-11 15:31:30
【问题描述】:
我有以下数组:
double[] list = new double[] {0,0,100,100}
如果我搜索29.6,为什么会得到-3?
Array.BinarySearch(list, 29.6)
我期待+1 或-1。
返回参数的 Array.BinarySearch() 文档说:
如果找到值,则指定数组中指定值的索引。如果未找到 value 并且 value 小于数组中的一个或多个元素,则为负数,它是大于 value 的第一个元素的索引的按位补码。如果未找到 value 并且 value 大于数组中的任何元素,则返回一个负数,即 (最后一个元素的索引加 1) 的按位补码。
但这并没有对我说太多。
【问题讨论】:
-
或许你应该熟悉一下按位补码:stackoverflow.com/questions/791328/…
-
你得到的正是你想得到的结果。