• ベストアンサー

型変換

kahaの回答

  • kaha
  • ベストアンサー率23% (41/177)
回答No.5

> b=a; ←このままではだめですよね… union{ unsigned char tmp[sizeof(long)]; long a; }; a=50; > long型をchar型へ変換するには これは「long型をバイト単位で分解するには」ですよね?

関連するQ&A

  • C言語の型変換について

    short int 型をunsigned char型に変換する方法をおしえてください

  • 暗黙的型変換

    C の文法書を読んでいると、 汎整数型拡張: int より小さな汎整数型が式中に現れる場合は、暗黙的に int 型に変換される。 算術変換: 二項演算子で二つのオペランドの型が違う場合は、演算前により大きな方の型に暗黙的に変換される。 とあります。 例えば int 型 = unsigned short 型 - unsigned char 型; はどのように暗黙的な型変換が行われるのでしょう。 int 型 = (int)unsigned short 型 - (int)unsigned char 型; でしょうか。あるいは、 int 型 = (int) ( unsigned short 型 - (unsigned short)unsigned char 型); でしょうか。

  • c言語 型変換について

    c言語 型変換について 下記のように文字コードは、unsigned int型('B')をunsigned char 型(str[1] ) 格下げする型変換する規則を教えてください。 *質問ソースプログラム: int main(void) { char str[4]; /* 文字列を格納する配列 */ str[0] = 'A'; /* 代入 */ str[1] = 'B'; /* 代入 */ ・・・・・・ printf("size B %u\n",(unsigned)sizeof('B')); printf("size str[1] %u\n",(unsigned)sizeof(str[1])); * 実行結果 size B 4 size str[1] 1

  • error C2664

    現在VisualStudio C++ 6.0にてプログラムを組んでいるのですが、以下のようなエラーが出ます。 型の変換ができていないであろうことはわかるのですが、解決方法がわかりません。 どのような解決方法があるのでしょうか? よろしくお願いします。 error C2664: 'strcat' : 1 番目の引数を 'unsigned char [256]' から 'char *' に変換できません。 (新しい機能 ; ヘルプを参照) 指示された型は関連がありません; 変換には reinterpret_cast、 C スタイル キャストまたは関数スタイルのキャストが必要です。

  • 汎整数拡張の通常の算術型変換

    「汎整数拡張」の「通常の算術型変換」に <一方のオペランドが型unsigned long intをもつ場合、他方のオペランドをunsigned long intに型変換する。> この下に「そうでない場合」が、一方のオペランドが型long intをもつ場合が二つ続きます。 <一方のオペランドが型unsigned intをもつ場合、他方のオペランドをunsigned intに型変換する。> <>2つの例はlong型やint型よりもunsigned型の上位に位置づけています。 例として   if(-1<1u)は偽になります。 何ゆえにunsigned型の上位性をしているのでしょうか。宜しく願います。

  • C++型変換について

    C++を始めたばかりの初心者です VBからstringの引数をもらって C++のdllで処理をしてstringを返すものを考えています dll内で処理をするのにstd::stringに変換したいのですが 変換ほうほうがわかりません charをstd::stringへ std::stringをcharへの変換方法を教えてください 宜しくお願いします。

  • string型とsbyte*型の変換

    現在、C++で作成したクラスを、 C#から呼び出し実行しようとしております。 C++側での引数のデータ型は、「char *」 、 C#側での引数は、「sbyte*」となっています。 このクラスに対し、C#側から文字列をC++側に渡したい場合、 string型からsbyte*型へ変換しなければならないと 考えているのですが、その方法がわかりません。 そもそもの考え方が正しいのかどうかもわからない状態ですので、 質問そのものがとんちんかんなことを聞いているのかも知れませんが、 どうぞよろしくお願いいたします。

  • 暗黙の型変換をやめたい

    ASP.NET(C#2.0)からSQLServer2008R2のストアドプロシージャをコールする際、暗黙の型変換を使うとパフォーマンスが落ちるらしいので、全て明示的な型変換に修正したいと思っています。 MySQLをselectした値をリーダー(reader)に格納し、SQLServerにストアドコール時にパラメータ指定してinsertするのですが、何が暗黙的で何が明示的なのかわかりません。 下記は引数1にパラメータ、引数2にDBType(省略可)、引数3に値を指定しています。 [暗黙的かと思われるパラメータの渡し方] AddParameter("@パラメータ1", reader["値1"]); //char(2) AddParameter("@パラメータ2", DbType.string, reader["値2"].ToString()); //nvarchar(20) [明示的かと思われるパラメータの渡し方] AddParameter("@パラメータ3", DbType.DateTime, Convert.ToDateTime(reader["値3"])); //datetime AddParameter("@パラメータ4", DbType.Currency, (Convert.ToDecimal(reader["値4"])) * 100); //money 暗黙の型変換とは、引数3の型を指定しない場合に起こるという認識で合っていますでしょうか?

  • C++型変換

    型変換が難しいです。 デバッグやフォームへ文字を表示するのに型変換で躓いています。 charからstringとやBYTEからstringなど相互変換の需要はあまりないのでしょうか? char2stirngとか一式どこかにないですか? そもそもMicrosoftがこう言った型変換を簡単にするのを提供しないのはなぜでしょう? VBはあまり意識せずできていたので、VBからするとメッセージボックスに文字や数字を出すだけでも一苦労です。

  • CStringからchar*への型変換について教えてください。

    以前の質問に int型 → CString型/char型 がありましたが、 CString型をchar*型に変換する方法を 教えていただければありがたいです。 MSDNで「LPCTSTRキャスト」が説明されていましたが、 例が載ってないのでよくわかりませんでした。 よろしくお願いします。