![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
No.1ベストアンサー
- 回答日時:
そうじゃないですよ。
Z は、 uint8 へのポインタですから、
Zのアドレスのさすuint8値をとってくる
その値をuint32 へ拡張する
その結果を、Xにいれる
ということで、Xには、0x01 がはいります。
なお、C,C++では、変数名に大文字を使うのは、たいていの場合、コーディング規則違反となります。
この回答への補足
皆さんに有意義なアドバイスを頂きましたが、本来の質問へのご回答ですので、ベストアンサーに選ばせて頂きます。
ご回答いただいた皆さんありがとうございました。
ご回答ありがとうございます。
同等のことをやりたい場合、やはりビットシフトしながら順番に追加していくしかないのでしょうか?
もっとスマートな方法はないものかと模索しているところです。
No.4
- 回答日時:
X = *(uint32_t*)Z;
とすれば一応32bit値を格納できるが、期待した値が入るかどうかはバイトオーダーによる。
x86系システムなら0x04030201になるでしょう。
意図した値を得るなら
X=Z[0]*0x1000000+Z[1]*0x10000+Z[2]*0x100+Z[3];
が妥当でしょうね。
ご回答ありがとうございます。
実はこれらのコードは 8bit のマイコン上で動かすもので、可能な限り少ないクロックで処理したいという狙いもあります。
ビットシフトで近いことが出来ますので、ユニオンがうまくいかない場合参考にさせて頂きたいと思います。
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_04.png?8acaa2e)
No.3
- 回答日時:
一応、「共用体」という機能があります。
#include <iostream>
int main()
{
union
{
unsigned char z[4];
unsigned int x;
}
data;
data.z[0] = 1;
data.z[1] = 2;
data.z[2] = 3;
data.z[3] = 4;
std::cout << data.x;
return 0;
}
で、出力されるのは 0x04030201 です。
環境によっては、0x01020304 が出力されるかもしれません。
(この順番は、処理系依存なので、確認が必要です)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Ruby 初心者プログラミング 3 2022/10/12 11:31
- C言語・C++・C# 関数ポインタの高速化のメリット 7 2023/05/05 20:15
- Visual Basic(VBA) vbaについて 主に以下のような設定をしたいです。 Aブックの表の行数が20未満だったら Bブックの 1 2023/06/08 23:40
- C言語・C++・C# 10人分の生徒の英語の点数{32,34,41,38,40,26,14,46,42,50} と数学の点 2 2022/05/26 21:31
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- Visual Basic(VBA) エクセルVBA Workbook変数に変数を使ったファイル名を格納したい 5 2023/06/13 14:46
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) batにて、異なるフォルダの同名ファイルを参照し、文字列を判別。擬似配列で変数へ格納 3 2022/04/10 03:37
- その他(プログラミング・Web制作) プログラミングについて(Python) 添付した画像はC言語で簡単に作ったソースで、1つの配列に5つ 3 2022/09/10 19:15
- Perl perlでリテラル値はメモリにどのように格納されているか? 1 2023/01/15 20:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
プログラムについての質問です...
-
VBAでテキスト出力時のスペース...
-
COBOLのMOVEで桁数が異なる場合
-
COBOLで可変長ファイルの出力に...
-
printfとputcharの違いは
-
アクセスでエクセルに出力する...
-
無線とかアンテナに関しの質問...
-
COBOLの桁落ち
-
配列からポインタを使って長さ...
-
C# 標準出力のencodingをutf8に...
-
VBAのExecメソッドで画面を非表...
-
4Kの外部モニターに出力すると...
-
ACCESS クエリ→フォーム...
-
Accessの値をExcelに縦横入替出...
-
PCのモデル名をコマンドで取得...
-
無停電電源装置(UPS)の待機時...
-
MMDでavi出力が出来ない
-
C言語のものなのですが、具体的...
-
コンセントの電力は入力と出力...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PS4コントローラーをPCでゲーム...
-
4Kの外部モニターに出力すると...
-
プログラムについての質問です...
-
printfとputcharの違いは
-
cout と cerrの違い
-
COBOLのMOVEで桁数が異なる場合
-
テキストファイルから特定の文...
-
MMDでavi出力が出来ない
-
コンセントの電力は入力と出力...
-
アクセスでエクセルに出力する...
-
OBS配信すると、マイクが途切れ...
-
coutで出力した文字を消去する...
-
CRC16計算について
-
VBA レジストリの値の読み方に...
-
ACCESS クエリ→フォーム...
-
printfの書式%.*s
-
VBAで有効数字の設定
-
VBAでテキスト出力時のスペース...
-
VBAのExecメソッドで画面を非表...
-
makeで文字化けする。migwのmak...
おすすめ情報