
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}
回答ありがとうございます。アンド演算とシフト演算のところはよくわかりました。助かります。
例は、1番の形でお願いします。
あと、
・数字であれば'0'を引く
・英字であれば小文字に直してから'a'を引き、10を足す。
というところがどのようにすればいいのかよくわかりません。できれば、もう少し詳しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- C言語・C++・C# int temp = 0; if(isdigit(arr[i])){//文字が数字であれば(0~9) 1 2022/03/27 01:37
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- C言語・C++・C# 至急教えてください! プログラミングの問題です! お願いします! 出力2と全く同じ出力をするように、 2 2022/06/22 23:10
- C言語・C++・C# c言語 int temp = 0; if(isdigit(arr[i])){ temp=arr[i] 2 2022/03/27 01:44
- Visual Basic(VBA) VBA B列にある前から10文字のみ表示 3 2023/08/07 11:24
- Visual Basic(VBA) VBAで、特定の文字より後を削除して残った数値を文字列に変換と特定の文字より前も削除したい 3 2022/04/15 19:21
このQ&Aを見た人はこんなQ&Aも見ています
-
【お題】大変な警告
【大喜利】「今このパソコンは大変危険な状態です」という警告メッセージを無視してパソコンを開いたら、こんなことが起こった
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
最強の防寒、あったか術を教えてください!
とっても寒がりなのですが、冬に皆さんがされている最強の防寒、あったか術が知りたいです!
-
テレビやラジオに出たことがある人、いますか?
テレビやラジオに取材されたり、ゲスト出演したことある方いますか?
-
「これいらなくない?」という慣習、教えてください
現代になって省略されてきたとはいえ、必要性のない慣習や風習、ありませんか?
-
c言語 16進数の2進数への変換
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
[エクセル]連続する指定範囲か...
-
エクセルで、絶対値の平均を算...
-
【VBA】ユーザーフォーム リス...
-
ExcelのINDEXとMATCH関数でスピ...
-
表にフィルターをかけ、絞った...
-
.NET - 配列変数を省略可能の引...
-
読み込みで一行おきに配列に格納
-
INDEX(D:D,L3)の意味は?
-
array関数で格納した配列の型を...
-
EXCEL VBA 2次元配列に格納さ...
-
VBA コンボボックスの値によっ...
-
Excel オートフィルタのリスト...
-
iniファイルのキーと値を取得す...
-
バイト配列の構造体変換について
-
Split関数でLong配列に格納する...
-
Excelのセルの色指定をVBAから...
-
VBAでの100万行以上のデータの...
-
VC#で配列の値の重複チェックに...
-
配列がとびとびである場合の書き方
-
エクセルの関数 一列おき 文...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
[エクセル]連続する指定範囲か...
-
エクセルで、絶対値の平均を算...
-
ExcelのINDEXとMATCH関数でスピ...
-
表にフィルターをかけ、絞った...
-
DataSetから、DataTableを取得...
-
Excelのセルの色指定をVBAから...
-
配列がとびとびである場合の書き方
-
array関数で格納した配列の型を...
-
読み込みで一行おきに配列に格納
-
【VBA】ユーザーフォーム リス...
-
Excel オートフィルタのリスト...
-
.NET - 配列変数を省略可能の引...
-
VBA 配列に格納した値の平均の...
-
iniファイルのキーと値を取得す...
-
Split関数でLong配列に格納する...
-
VB6.0 ファイルの一括読込み
-
[VBA]改行入りのセルの値を配列...
-
配列のSession格納、及び取得方...
-
VBAでの100万行以上のデータの...
-
エクセル 条件を指定した標準...
おすすめ情報