タグ付けされた質問 「hexadecimal」

5
数値が大きすぎる場合、次のメモリ位置にあふれますか?
私はCプログラミングをレビューしてきましたが、気になっていることがいくつかあります。 例としてこのコードを見てみましょう: int myArray[5] = {1, 2, 2147483648, 4, 5}; int* ptr = myArray; int i; for(i=0; i<5; i++, ptr++) printf("\n Element %d holds %d at address %p", i, myArray[i], ptr); intは正の2,147,483,647の最大値を保持できることを知っています。それで、それを越えて、次のメモリアドレスに「あふれ」、そのアドレスで要素2が「-2147483648」として表示されるのでしょうか。しかし、出力では次のアドレスが値4、5を保持していることを示しているため、それは実際には意味がありません。数値が次のアドレスにあふれた場合、そのアドレスに格納されている値は変更されません? MIPS Assemblyでのプログラミングと、プログラム中にアドレスが値を変更するのを見て、それらのアドレスに割り当てられた値が変わることを漠然と覚えています。 間違って覚えていない限り、別の質問があります:特定のアドレスに割り当てられた番号がタイプ(myArray [2]のように)よりも大きい場合、後続のアドレスに格納されている値には影響しませんか? 例:int myNum = 40億がアドレス0x10010000にあります。もちろん、myNumは40億を保存できないため、そのアドレスでは負の数として表示されます。この大きな数を格納することはできませんが、後続のアドレス0x10010004に格納されている値には影響しません。正しい? メモリアドレスには、特定のサイズの数字/文字を保持するのに十分なスペースがあり、サイズが制限を超えた場合、異なるように表示されます(intに40億を格納しようとしているが、負の数として表示されます)そのため、次のアドレスに保存されている数字/文字には影響しません。 船外に行ったら申し訳ありません。私はこれから一日中大きな脳のおならをしていました。

22
なぜ16進法を学ぶのですか?[閉まっている]
私は今日、かなりの数のイントロプログラミングクラスを受講しました。主に、私が見つけたあらゆる種類のプログラミングに足を踏み入れるためです。驚くことではありませんが、ほぼすべてのクラスが同じ形式で実行されます。ハードウェアの紹介、ソフトウェアの紹介、そして実際のプログラミングに進みます。ハードウェアとソフトウェアがどのように機能するかを理解することは非常に重要ですが、私は常にすべてのコースにある1つのトピックに混乱しています。 私が見つけたソフトウェアの紹介セクションでは、必ず2進数、16進数、さらには8進数のシステムで読み書きできることに重点を置いています。これらが何であるか、そしてコンピューターがそれらをどのように解釈するかを理解することは良いことだと理解していますが、これらの数値システムの読み書きの方法を実際に知る必要があることはありません。本当に、私がベース10以外のものを見たのはCSSの色の場合だけです。これはwww.colorpicker.comのようなものを使用すればさらに簡単です プログラミングの世界でこれらの非10進数システムの素晴らしい使用法を知らなかったのですか、それともすべてのプログラミング教科書にこれらのセクションを含めるのは昔からの伝統ですか?平均的なプログラマが実際に8進数を使用する場所の良い例はありますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.