> 2 -6ren">
gpt4 book ai didi

go - 如何在 Golang 中找到下一个字符?

转载 作者:数据小太阳 更新时间:2023-10-29 03:45:44 26 4
gpt4 key购买 nike

出于对 golang 的兴趣,我只是在做一些算法题。我知道在其他语言中,要按字母顺序查找下一个字符,我可以对字符进行位移,因为字符(我正在考虑 C)实际上是一个数字。

所以我试着做

"a" >> 2

或者类似的东西,但是类型不匹配。

我想知道如何实现这一目标。

最佳答案

我不确定您是从哪里想到这会为您提供“下一个角色”的想法。在任何语言中都不是这样。什么'a' >> 2是这样的:

  • 'a' 被解释为 int32(97) ( example )
  • >>意思是“将 X 右移 Y 位”。将某项右移 2 位在功能上与整数除以 4 相同。所以 (x >> 2) == (x / 4) . ( example )
  • 97 / 4 == 24 . b字符具有 ASCII 值 98 .所以这不会让你靠近任何地方。 ( example )

更多关于位移

当考虑二进制表示法中的数字时,位移是最明显的。对于表达式 z = x >> y ,我们可以注意到以下几点:

x(97):  01100001
y(2): 00000010
-------- >>
z(24): 00011000

请注意 x 中的所有位只是简单地向右移动了两位。 1从最后掉下来的是掉下来的。

同样,您可以“左移”( << )。就像x >> 1x / 2相同, x << 1x * 2相同.

表达式:5>>1 == 5/2 == 2 :

x(5):   00000101
y(1): 00000001
-------- >>
z(2): 00000010

表达式:5<<1 == 5*2 == 10 :

x(5):   00000101
y(1): 00000001
-------- <<
z(10): 00001010

实际获取下一个字符

如果你想要紧跟在'a'后面的字符,您只需将其加 1 即可,如 example 所示.

关于go - 如何在 Golang 中找到下一个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29323572/

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