Tag: bytebuffer

C / C ++为什么要使用二进制数据的无符号字符?

是否真的有必要使用unsigned char来保存二进制数据,如在字符编码或二进制缓冲区工作的一些库? 为了理解我的问题,请看下面的代码 – char c[5], d[5]; c[0] = 0xF0; c[1] = 0xA4; c[2] = 0xAD; c[3] = 0xA2; c[4] = '\0'; printf("%s\n", c); memcpy(d, c, 5); printf("%s\n", d); 两个printf's输出𤭢正确,其中f0 a4 ad a2是Unicode代码点U+24B62 (𤭢)的hex编码。 即使是memcpy也正确地复制了char所保存的位。 什么推理可能主张使用unsigned char而不是plain char ? 在其他相关问题中, unsigned char被突出显示,因为它是唯一的(字节/最小)数据types,保证C规范没有填充。 但是,正如上面的例子所显示的,输出似乎不受任何填充的影响。 我用VC ++ Express 2010和MinGW来编译上面的代码。 尽pipeVC发出警告 warning C4309: '=' : truncation of constant […]

ByteBuffer的翻转方法的目的是什么? (为什么它被称为“翻转”?)

为什么ByteBuffer的flip()方法被称为“flip”? 什么是“翻转”在这里? 根据apidoc,两个连续的翻转不会恢复原来的状态,并且多次翻转可能趋于limit()成为零。 我可以“解开”以某种方式重用字节超出限制吗? 我可以连接尾部与其他数据翻转吗?

从java中的ByteBuffer获取字节数组

这是从ByteBuffer获取字节的推荐方法 ByteBuffer bb =.. byte[] b = new byte[bb.remaining()] bb.get(b, 0, b.length);

Java:将string转换为ByteBuffer以及相关的问题

我为我的套接字连接使用Java NIO,并且我的协议是基于文本的,所以我需要能够将string转换为ByteBuffers,然后将它们写入到SocketChannel中,然后将传入的ByteBuffers转换回string。 目前,我正在使用这个代码: public static Charset charset = Charset.forName("UTF-8"); public static CharsetEncoder encoder = charset.newEncoder(); public static CharsetDecoder decoder = charset.newDecoder(); public static ByteBuffer str_to_bb(String msg){ try{ return encoder.encode(CharBuffer.wrap(msg)); }catch(Exception e){e.printStackTrace();} return null; } public static String bb_to_str(ByteBuffer buffer){ String data = ""; try{ int old_position = buffer.position(); data = decoder.decode(buffer).toString(); // reset buffer's position […]

在Java中使用ByteBuffer有什么用?

什么是Java中的ByteBuffer示例应用程序? 请列出使用这个的任何示例场景。 谢谢!

ByteBuffer.allocate()与ByteBuffer.allocateDirect()

要allocate()或allocateDirect() ,这是问题。 多年以来,我只是坚持这样一种想法,即由于DirectByteBuffer是在操作系统级别的直接内存映射,它比HeapByteBuffer更快地执行get / put调用。 直到现在,我从来没有真正有兴趣find有关情况的确切细节。 我想知道两种types的ByteBuffer的哪一种更快,以及在什么条件下。

字节数组到图像转换

我想将字节数组转换为图像。 这是我从哪里得到字节数组的数据库代码: public void Get_Finger_print() { try { using (SqlConnection thisConnection = new SqlConnection(@"Data Source=" + System.Environment.MachineName + "\\SQLEXPRESS;Initial Catalog=Image_Scanning;Integrated Security=SSPI ")) { thisConnection.Open(); string query = "select pic from Image_tbl";// where Name='" + name + "'"; SqlCommand cmd = new SqlCommand(query, thisConnection); byte[] image =(byte[]) cmd.ExecuteScalar(); Image newImage = byteArrayToImage(image); Picture.Image = newImage; //return […]

将Java位图转换为字节数组

Bitmap bmp = intent.getExtras().get("data"); int size = bmp.getRowBytes() * bmp.getHeight(); ByteBuffer b = ByteBuffer.allocate(size); bmp.copyPixelsToBuffer(b); byte[] bytes = new byte[size]; try { b.get(bytes, 0, bytes.length); } catch (BufferUnderflowException e) { // always happens } // do something with byte[] 在调用copyPixelsToBuffer之后,当我查看缓冲区时,字节全部为0 …从相机返回的位图是不可变的,但这不应该因为它正在进行复制。 这段代码有什么问题?