我正在从指针 *p 读取二进制编码的十六进制值。
十六进制值为: 2001:0db8:3c4d:0015:0000:0000:abcd:ef12。
0对应的二进制值为: 0010000000000001000011011011100000111100010011010000000000010101000000000000000000000000000000000101010111100100111101111
char *mMmapBase;
mMmapBase = (char *) mmap( 0, mCollectionFileSize, PROT_READ | PROT_WRITE,
MAP_SHARED, fileno( aFilePtr ), 0 );
char *p = &mMmapBase[107]; //read from the offset 107
int aTwoBytes;
memcpy(&aTwoBytes, p, 2); //copy first two bytes
cout << "aTwoBytes : " << aTwoBytes << endl;
我应该以十六进制形式或二进制形式获得输出,但是,我得到以下输出 - aTwoBytes:539492652。谁能告诉我为什么?
另外,我想要十六进制形式的输出,我该如何实现呢?