前提・実現したいこと
C++の共有ライブラリで8bitの動的配列に12bitの数値を返す関数を使用しています.
この関数が返す配列から12bitの数値を読み取りたいです.
下記の例で、pFrameのメモリからbit単位で数値を読み込むことができれば助かります
該当のソースコード
C++
1#include "stdafx.h" 2#include "stdint.h" 3#include "stdlib.h" 4 5int main() 6{ 7//配列の宣言 8int SizeInBytes; //SizeInBytesには適当な数値が代入される 9uint8_t *pFrame; 10pFrame = (uint8_t *)malloc(SizeInBytes); 11 12//C++の共有ライブラリ関数: Func_12bit(uint8_t *pFrame) 13//Func_12bitは12bitの数値を返します 14Func_12bit(pFrame); 15 16//以下、詳細は省いて流れだけ書きます 17//1) pFrame[i]を8桁の2進数への変換し、各要素をつなげる 18//2) 変換した2進数を12桁づつに分割 19//3) 12桁の2進数を10進数に変換 20 21return 0; 22} 23 24省略部分の例を簡単に挙げますと 25pFrame[0] = 68 (= 01000100) 26pFrame[1] = 200 (= 11001000) 27pFrame[2] = 14 (= 00001110) 28の場合、 29010001001100と100000001110に結合・分割して 30それぞれ1100と2062という数値を得ています.
発生している問題・試したこと
上記のコードで、pFrame[i]は8bit(<256)の数値を返すので
いったん配列内の数値を8桁の2進数に変換し、12桁づつに分割してから10進数に変換し直しています.
この方法で正しい数値は得られるのですが、可能であれば2進数の変換を経ないで直接pFrameから12bitごとに数値を出力したいです.
補足情報
OSはCentOS7です
使用している関数(Func_12bit)は共有ライブラリ(.soファイル)となっており、関数自体は変更できないので数値の出力方法を工夫したいです.
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/18 15:32
2019/06/18 16:25
2019/06/18 17:56
2019/06/19 17:03