Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ruby中将字符串转换为位,添加1位并转换回ascii_Ruby_Ruby On Rails 4_Bit Manipulation_Bits - Fatal编程技术网

在ruby中将字符串转换为位,添加1位并转换回ascii

在ruby中将字符串转换为位,添加1位并转换回ascii,ruby,ruby-on-rails-4,bit-manipulation,bits,Ruby,Ruby On Rails 4,Bit Manipulation,Bits,我正在编写一个RubyUID生成器,需要以增量顺序生成唯一的ID。唯一ID是从3到9个字符不等的字符串 我想要实现的是: 获取最后生成的标识符,将其转换为位,再将其转换为1位(基本上是a+1),然后将结果转换回ascii。通过这种方式,我可以防止生成两次唯一id 我怎样才能在ruby中做到这一点。我知道“打包”和“解包”的方法,但我想不出一个方法。你可以使用这样的方法: a = "Foobar".unpack("B*")[0].to_i(2)+1 =>774424032627 ["0" + a

我正在编写一个RubyUID生成器,需要以增量顺序生成唯一的ID。唯一ID是从3到9个字符不等的字符串

我想要实现的是:

获取最后生成的标识符,将其转换为位,再将其转换为1位(基本上是a+1),然后将结果转换回ascii。通过这种方式,我可以防止生成两次唯一id


我怎样才能在ruby中做到这一点。我知道“打包”和“解包”的方法,但我想不出一个方法。

你可以使用这样的方法:

a = "Foobar".unpack("B*")[0].to_i(2)+1
=>774424032627

["0" + a.to_s(2)].pack("B*")

=>“Foobas”

你能举个例子吗?这相当于
“Foobar”.suc
所以我需要的是:我有一组字符[0-9A-Z],su数字,只有大写字母。我希望能够从000开始,并上升到zzz(9 z),只需更改最后一位,而无需随机选择。在ruby中可能吗?你想要所有的排列吗?使用then:a=(0..9).to_a+(“a”。“Z”).to_a.a.permutation(3).to_aOr如果你想要一个基于uid的函数,然后生成后续uid,那么你应该在函数中使用succ和一些逻辑来检测数字和字符的变化。浏览此代码:a=“0A”;(1.。(10**2)。每个都是;提出了一个解决方案;a、 成功!;结束