Tag: bytearray

使用Ruby的TCPSocket-Class发送原始字节数组的最简单方法

我想使用Rubys TCPSocket-Class发送原始字节。 有人举个好榜样吗? 我已经尝试过这种方式,但它不起作用:( require ‘socket’ host = ‘192.168.0.80’ port = 102 s = TCPSocket.new(host, port) s.write [0x03, 0x00, 0x00, 0x16, 0x11, 0xE0, 0x00, 0x00, 0x00, 0x01, 0x00, 0xC1, 0x02, 0x02, 0x02, 0xC2, 0x02, 0x02, 0x02, 0xC0, 0x01, 0x0A ].pack(‘C’) puts s.read s.close puts “exit” 谢谢 :)

Ruby – 返回包含Bignum / Fixnum的两个补码表示的字节数组

我正在尝试返回一个包含Bignum或Fixnum(在Ruby中)的二进制补码表示的字节数组。 在Java中有一种方法可以完全实现 – Docs: Java toByteArray()方法 ,代码为: https : //gist.github.com/867409 我的要求与Java方法(取自Java页面)相同:字节数组将采用big-endian字节顺序:最重要的字节位于第0个元素中。 该数组将包含表示此BigInteger所需的最小字节数,包括至少一个符号位,即(ceil((this.bitLength() + 1)/8)) 。 Ruby没有>>>运算符(我认为)是为什​​么我有这么多问题将这个概念转换为Ruby。 添加一些不工作的代码: def to_byte_array(num) result = [] until num == 0 result = [num & 0xff] + result num = num >> 8 end result end