網站首頁 學習教育 IT科技 金融知識 旅遊規劃 生活小知識 家鄉美食 養生小知識 健身運動 美容百科 遊戲知識 綜合知識
當前位置:趣知科普吧 > IT科技 > 

memcpy|java

欄目: IT科技 / 發佈於: / 人氣:2.75W

<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);}}

Tags:memcpy java