- ベストアンサー
16進数の文字列
ara_araの回答
- ara_ara
- ベストアンサー率35% (124/348)
こんな感じでどうでしょうか? (0-9、A-F以外が含まれる場合は省略しています) int hex2bin(char c) { if(('0'<=c) && (c<='9')) return c-'0'; if(('A'<=c) && (c<='F')) return c-'A'+10; return -1; /* 0-9,A-F でない */ } int main(void) { char hexstr[]="ABCD"; int i, n; for(n=0, i=0; i<strlen(hexstr); i++) { n *= 16; n += hex2bin(hexstr[i]); } ・・・ } 動かしていないので自信なしということにしておきます。
関連するQ&A
- A列の文字列からB列の文字列を
A列の文字列からB列の文字列を 引く(マイナス)することはできないでしょうか? 例) A列 - B列 - C列 ABCD - CD - AB ABCD - BCD - A ABCD - GH - ABCD という風にC列に関数で結果を表示したいのです。 方法はないでしょうか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excelで文字列が含まれている値から最小値を取り出す
こんにちは。Excelの関数での質問です。 Excelで以下のようなデータがあった場合 A列 B列 C列 (1) 1 2 AB10001 (2) 1 2 CD10003 (3) 1 2 CD10002 (4) 1 2 AB10004 (5) 3 4 ZZ99999 (6) 3 4 ZZ00000 A列、B列の値が同じ行で、C列の左2桁が等しい値の中から最小を 取り出したいです。 このデータの場合、A列「1」、B列「2」のレコードでは C列の「AB10001」、「CD10002」が取り出したいです。 A列「3」、B列「4」のレコードでは C列の「ZZ00000」が取り出したいです。 以上、よろしくお願いいたします。
- 締切済み
- オフィス系ソフト
- 文字列を実数に変換するにはどうしたらいいでしょうか
本に文字列を整数に変換する「atoi」はあったのですが、文字列を実数に変換する関数はないのでしょうか。教えて下さい。
- ベストアンサー
- C・C++・C#
- 10進数を表す文字列を整数型に
"0x10"(16進数) や "020"(8進数) などは oct関数で整数型に直せますが、 10進数の文字列を整数型に直す関数はありませんか?
- ベストアンサー
- Perl
- ”123456”といった整数を文字列に変換、その後、文字列を1文字ごとに整数に変換
忙しい中失礼します。 http://oshiete1.goo.ne.jp/qa3424254.htmlでも質問させて頂いたものですが、 今、回答してくださった方の意見を参考に以下の過程をこなそうとしています。 1.整数入力 →scanf関数を使用し、"123456"と入力します。 2.整数を文字列に変換 → printf("Write the SIN: \n"); scanf("%d", &fnum); printf("%c\n",fnum); で、"123456"と数値を入力しても”123456”という値が返されず、@となってしまいます。 どうすれば入力した数値が文字列として返ってくるのでしょうか? どんな文・関数を使用すれば数字を文字列として使用することが可能になるのでしょうか? 今のところ習っている文はif else, swith case, while for,do whileで、 getcharやstr?(string)という関数は習っていません。なので、どうプログラムを書けばいいのか??さっぱりなのです。 でもgetcharやstr?(string)という関数を使用するしか方法はないものなのでしょうか? また、それから 3.文字列を1文字ごとに整数に変換 にする場合、どんな文・関数を使用すれば、1文字”ごと”に整数に変換できるのでしょうか? ごめんなさい、分からないのです。プログラム文、ヒントもしくは参考になるページ等があれば教えて下さい。 よろしくお願いします。 <使用環境:フリーソフト(Borland?)C ANSI C>
- ベストアンサー
- C・C++・C#
- 文字列になっている配列を‥
以下の値がDBに文字列の項目に登録されています。 DB から値を取得したのはいいのですが文字列なので foreach でグルグルしようとすると怒られてしまいます。 配列の型に変換できればいいのですが(array)だとうまく行かないしどうすればいいかどなたかご教授願えないでしょうか。 よろしくお願いします。 ■値(文字列でDBに格納されてます‥) array( 1=>'a', 2=>'b', 3=>'c', 10=>array( 'A'=>1, 'B'=>'hoge1', ), 11=>array( 'A'=>2, 'B'=>'hoge2', ), 12=>array( 'A'=>3, 'B'=>'hoge3', ), )
- 締切済み
- PHP
- スペースを含んだ文字列から文字列の抽出
エクセルバージョン2007 スペースを含む文字列で、A列に文字列がある時、以下の式を組んで文字列を抽出しています。 先頭にIDの数字が有る場合は、それぞれの目的に合った文字列を抽出しています。 B1=LEFT(A1,SEARCH(" ",A1,1)-1) C1=LEFT(MID(A1,SEARCH(" ",A1,1)+1,LEN(A1)-SEARCH(" ",A1,1)),SEARCH(" ",MID(A1,SEARCH(" ",A1,1)+1,LEN(A1)-SEARCH(" ",A1,1)),1)-1) 3 3df-32654-10 CCCCHH 10 1ab-12345-00 AAABBBB この文字列の場合、B列に3と10が表示、C列に 3df-32654-10 1ab-12345-00が表示されます。 先頭に、IDの無い文字列は以下の様な構成です。 6rt-95132-00 PPPKKK この文字列の場合、B列に6rt-95132-00、C列にPPPKKKが表示されてしまい、この場合、IDの数字が無い場合はB列には表示させない又は、C列に6rt-95132-00させたいと思っています。 ご教授頂ければ幸いです。 以上、宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- 文字数が決まっていないの文字列を自動に取得して別の文字列に変換
取得して切り出す文字列の長さが固定で無い場合には、どのようにしら良いのでしょうか? 例: ある適当な文字列を分割 ETUROGO → E T U R O G O の様に一文字ずつ分割 各文字を他の文字列に変換 E→ 2 や T → 電話 のように全文字を 他の文字に変換 この文字列の長さが固定ならば範囲をして変換 する事が出来るのですが、 取得文字列(この場合は、ETUROGO)の長さが 3文字~20文字程度で決まっていない場合 どのようにしたら自動で変換されるのでしょうか? LEN関数で文字数を取得 LEFT関数やMID関数等で文字列を切り出す。 という事までは考えたのですが。 文字数が変化してしまうとやり方が分かりません。 また、上記の場合は英文字なのですが同様に 文字列の長さが固定ではなく(4文字~20文字の間) ”東京携帯配備” を ”東京” ”携帯” ”配備” のように単語で分割し同様に他の文字列に変換 するという場合は、少し異なるのだと思うのですが INDEX関数等を使えば良いのかな? とも思うのですが過去の例を見ても理解出来ません。 どうかお教え願います。宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- ○進数の計算
直接VisualBasicとは関係ないですが、VBAのプロジェクトで ○進数の考え方で、英字を数値へ 数値を英字へ変換しているのですがどうしても理解できない事があります。 A B C AA AB AC BA ・ ・ ・ 上記のような法則があるとします。 A-Cを数字に置き換えます。 A -> 0 B -> 1 C -> 2 文字→数値の計算式は 1桁目 A-Cの数値×3回毎に繰り上がるので3×1桁目は0乗 2桁目 A-Cの数値×3回毎に繰り上がるので3×2桁目は1乗 Aを数字に置き換えると 1桁目 Aは、0*3の0乗=0です。 期待通りです。 AAを数字に置き換えると 1桁目 Aは、0*3の0乗=0です。 2桁目 Aは、0*3の1乗=0です。 0 + 0 = 0 期待している値は3です。 BCを置き換えると 1桁目 Cは、2*3の0乗=2 2桁目 Bは、1*3の1乗=3 2 + 3 = 4 期待している値は8です。 3を文字に置き換えると 数字÷3回毎に繰り上がるので3 = 商 ・・・余り 余りで、文字列を引いてきます。 3÷3=1 ・・・0 -> A 2桁目は、1回目の商÷3 1÷3=切捨てで0 ・・・1 - > B B + A = BA 期待値はAAです。 これらは、1つずれて期待している値とは違う値が返ってきていると思うのですが、考え方で理解することができません。 どうしてこのようなことになるのでしょうか? 頭が混乱して考えても分かりません。よろしくお願いします。
- ベストアンサー
- Visual Basic
- excelで、ある文字が含まれているセルの個数を出すには?
excelでの質問です。 いくつかのセルに文字列が入っていたとします(範囲:A1~A10)。 この中に、たとえば「ab○○」というふうに最初の2文字がabとなっているものがいくつかあるとして、これの個数を数える場合の方法 を教えてください。 また、A1~A10で「ab○○」となっている場合にB列に1、なっている 場合には0なるようにするにはB列にはどんな関数を使えばいいのですか?
- ベストアンサー
- オフィス系ソフト
お礼
どうもありがとうございます。 ひとつ疑問におもったのが c-'0' と言う部分なんですが、以前にも何かの本でこのような部分があり、どういうことをしているのかが、わからなかったのですが、これはどういうことをしているのでしょうか? よろしかったら、回答おねがいします。