
No.3ベストアンサー
- 回答日時:
即席ですが。
ctype.hとかstdlib.hとか要ると思います。戻り値>=0で正常終了。その場合は書き込まれた長さ(使った配列の要素数)が返ります。
int hexToBinary(char* src, int* dest) {
char c;
int x, i;
char* p = src;
while(*p != NULL) {
c = tolower(*p);
if (isdigit(c)) {
x = c - '0';
} else if (c >= 'a' && c <= 'f') {
x = c - 'a' + 10;
} else {
return -1;
}
for (i=0; i<4; i++,x>>=1) {
dest[3-i] = x & 1;
}
p++;
dest+=4;
}
return (p-src)*4;
}
No.2
- 回答日時:
16進数は当然16パターンしかないわけですから、1文字ずつそのパターンにあわせて変換していってはどうでしょうか?
1は0,0,0,1 2は0,0,1,0 3は0,0,1,1・・・という具合に。
でint型の配列を4ずつ進ませて書き込んでいくってのは駄目ですか?
No.1
- 回答日時:
int配列への格納の仕方が桁数固定なのか可変なのか、
およびリトルエンディアンなのかビッグエンディアンなのか(下の桁を配列の前に格納するか後ろに格納するか)で
コードの書き方には差が出ますので、概略のみ書きます。
2^4=16ですから、16進数1桁が2進数4桁に対応することに注意します。
文字列から1文字を読み込み、
・数字であれば'0'を引く
・英字であれば小文字に直してから'a'を引き、10を足す。
とすれば、数値として0~15になります。
この数値をxと書きます。
x&1で最下位ビットの状態が得られるので、これをint型配列に格納します。
さらにx>>=1とし、再び最下位ビットを得て格納、...を4回行います。
次の文字を読み込み、同様に処理します。
というような手順になります。
次の変換のうち、どれをやりたいのかを提示していただければより具体的な回答が得られるかと思います。
例:"1d"の変換として、どれを得たいのか
1.{0,0,0,1,1,1,0,1}
2.{1,1,1,0,1}
3.{1,0,1,1,1,0,0,0}
4.{1,0,1,1,1}
この回答へのお礼
お礼日時:2002/05/12 21:23
回答ありがとうございます。アンド演算とシフト演算のところはよくわかりました。助かります。
例は、1番の形でお願いします。
あと、
・数字であれば'0'を引く
・英字であれば小文字に直してから'a'を引き、10を足す。
というところがどのようにすればいいのかよくわかりません。できれば、もう少し詳しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで、絶対値の平均を算...
-
表にフィルターをかけ、絞った...
-
[エクセル]連続する指定範囲か...
-
array関数で格納した配列の型を...
-
Datatableへの代入
-
DataSetから、DataTableを取得...
-
配列がとびとびである場合の書き方
-
【VBA】配列に数式を仕込む方法...
-
エクセルでエラーを無視して一...
-
【VBA】ユーザーフォーム リス...
-
VBAでの100万行以上のデータの...
-
Split関数でLong配列に格納する...
-
VBA 配列に格納した値の平均の...
-
Excelのセルの色指定をVBAから...
-
【VBA】 動的な変数(定数)の指定
-
C#でFontStyleの列挙体に値を追...
-
ExcelのINDEXとMATCH関数でスピ...
-
VBの配列について
-
テキストファイルを配列に
-
読み込みで一行おきに配列に格納
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで、絶対値の平均を算...
-
[エクセル]連続する指定範囲か...
-
表にフィルターをかけ、絞った...
-
ExcelのINDEXとMATCH関数でスピ...
-
Excelのセルの色指定をVBAから...
-
array関数で格納した配列の型を...
-
【VBA】ユーザーフォーム リス...
-
Excel オートフィルタのリスト...
-
配列がとびとびである場合の書き方
-
iniファイルのキーと値を取得す...
-
.NET - 配列変数を省略可能の引...
-
DataSetから、DataTableを取得...
-
読み込みで一行おきに配列に格納
-
エクセルでエラーを無視して一...
-
VBAでの100万行以上のデータの...
-
配列のSession格納、及び取得方...
-
Datatableへの代入
-
[VBA]改行入りのセルの値を配列...
-
SUMPRODUCT関数を用いた最小値
-
エクセル 条件を指定した標準...
おすすめ情報