gpt4 book ai didi

C++ - 当您用 float 索引数组时会发生什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:04:02 24 4
gpt4 key购买 nike

我试图准确理解在对具有浮点值的数组进行索引时会发生什么。

此链接:Float Values as an index in an Array in C++

没有回答我的问题,因为它指出 float 应四舍五入为整数。然而,在我尝试评估的代码中,这个答案没有意义,因为索引值只会是 0 或 1。

我正在尝试解决任天堂发布的编码挑战。为了解决这个问题,有一个古老的语句,它使用一个长而复杂的按位表达式对数组进行按位赋值。

数组被声明为指针

unsigned int* b = new unsigned int[size / 16]; // <- output tab

然后给每个元素赋0

for (int i = 0; i < size / 16; i++) {   // Write size / 16 zeros to b
b[i] = 0;
}

这是声明的开头。

b[(i + j) / 32] ^= // some crazy bitwise expression

上面的代码位于一个嵌套的 for 循环中。

我在这里省去了很多代码,因为我想尽可能多地自己解决这个问题。但我想知道是否有一种情况是您想要遍历这样的数组。

除了自动转换为 int 的 float 之外,它肯定还有更多的东西。这里必须进行更多操作。

最佳答案

这里没有floatsize 是一个整数,16 是一个整数,因此 size/16 也是一个整数。

整数除法向零舍入,因此如果 size[0,16) 中,则 size/16 == 0。如果 size[16,32) 中,则 size/16 == 1,依此类推。如果 size(-16, 0] 中,那么 size/16 == 0 也是如此。

([x,y) 是从xy的“半开”区间:也就是说,它包含了每一个数字在xy之间,而且它包含x但不包含y)

关于C++ - 当您用 float 索引数组时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31212944/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com