当前位置:懂科普 >

IT科技

> java memcpy

java memcpy

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

java memcpy是什么,让我们一起了解一下?

memcpy是由src内存区域复制count个字节到dest所指内存区域。memcpy也是C和C++使用的内存拷贝函数,和在Java中使用一样,由src指向地址为起始地址的连续n个字节的数据复制到以destin指向地址为起始地址的空间内。

而在JAVA中memcpy一般用二字节表示一个字母。在做通讯交易的情况下,总会传很多报文,而报文总会时不时的包含一些结束符如'0x00',但是用常规的方式截取如 new String(buf, pos + 2, length)来获得字符串,往往会出错(因为其遇到一些特殊的字符如结束符,会在计算字符串的操作出错)。但是用 new String(buf, pos + 2, length,"ASCII"),可以解决。

java memcpy

注意两点:

1、source和destin所指内存区域不能重叠,函数返回指向destin的指针。

2、与strcpy相比,memcpy并不是遇到’’就结束,而是一定会拷贝完n个字节。

memcpy在java的简单实现,代码如下:

public static void memcpy(Integer src, ByteBuffer buffer, Integer size){if(size > 4){size  = 4;}for(int i = 0; i < size; i++){byte temp = (byte)(((src>>(3-i))*8) & 0xff);;buffer.put(temp);}}

标签: java memcpy
  • 文章版权属于文章作者所有,转载请注明 https://dongkepu.com/itkeji/9yrj5d.html