質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
基本情報技術者

基本情報技術者とは、経済産業省が行う国家資格「情報処理技術者試験」の区分の一つです。試験ではプログラマーやシステムエンジニアなどIT業界で働くために必要とされる基礎知識や情報処理において論理的な考え方ができるか等が問われ、企業から高い評価を獲ることができ、IT業界の入門的な資格として人気があります。

Q&A

解決済

7回答

5387閲覧

n進数について理解すると役立つ場面とは?【基本情報処理技術者試験】

luxvil

総合スコア16

基本情報技術者

基本情報技術者とは、経済産業省が行う国家資格「情報処理技術者試験」の区分の一つです。試験ではプログラマーやシステムエンジニアなどIT業界で働くために必要とされる基礎知識や情報処理において論理的な考え方ができるか等が問われ、企業から高い評価を獲ることができ、IT業界の入門的な資格として人気があります。

3グッド

2クリップ

投稿2019/03/20 11:04

【前提】
基本情報処理技術者試験の勉強に取り組んでいる初学者です。

【質問内容】
n進数について勉強しているところですが、これを理解すると実務で役立つ場面がイメージできず、調べているところです。n進数(特に8進数、16進数)について理解することで実務で役立った場面などを御教示いただけませんか?

【補足】
試験後に勉強した内容を全て忘れてしまっては意味がないですし、実務で利用できる場面を知ることで記憶に残りやすくしたいと考えております。

kanonmaru, DrqYuto, ikedas👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答7

0

ベストアンサー

「8ビットを16進数2桁で表せて便利」ということで、16進数表記されるものは各種存在します。

  • 文字コード(たとえば、UnicodeのU+FFFDのようなコードポイントも16進数表記です)
  • カラーコード(color: #ffffff
  • メモリアドレス
  • ビットマスク(2進法で書くと長くなりすぎます)
  • IPv6アドレス

一方で、8進法を使う場面はそう多くありません。

  • 一部の言語で、0123のように書くと8進法として認識される
  • C言語などでの、"\033"のようなエスケープ表記
  • Unixのファイルパーミッション(これは3ビットごとに意味が区切れるので、8進法が便利です)

投稿2019/03/20 12:44

編集2019/03/20 12:47
maisumakun

総合スコア145192

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

luxvil

2019/03/21 03:52

回答ありがとうございます。 とても助かりました。こちらの回答に列挙された内容について調べて、n進数と関連付けて記憶しようと思います。
pepperleaf

2019/03/21 11:27

> Unixのファイルパーミッション Unixは、元々 PDP-11で開発されたと聞きます。で、PDP-11 というと、ミニコンで、8進数真っ盛りじゃなかったかと。これに合わせたのではないかと。 また、C言語の表記も同様。 当時は、16bitの Dip-SWで boot Strapを入力したとも聞きます。こちらも 3bitずつ区切られていて、 8進数。
guest

0

小学校に入って、数字には0から9の10種類があること、桁が1つ違うと10倍の差があること、というような10進数について習ったと思います。
そのおかげで、1個300円のリンゴは、5個1000円のリンゴよりも高いというような判断ができるようになったと思います。

世界中のほとんどの人が10進数を使うことで、数の概念について意思疎通ができるようになりました。

xx進数とは、そういうものです。

現状のデジタル計算機では、信号線の電圧が高いか低いかの2種類を区別し、桁がちがうと2倍・2分の1を表すという2進数による表現が使われています。
それを3桁まとめて扱うのが8進数、4桁まとめて扱うのが16進数なので、デジタル計算機に関する実務には8進数や16進数についての知識が必須です。

10進数が判らなかったら、普段の買い物などで不都合が起きるでしょう。
デジタル計算機を扱うところで8進数や16進数の知識が無い(わからない)時の困難は、10進数が判らなくなった日常を想像すればよいと思います。

==
ところで「実務」って何ですか?

店先の品物の値段表示(10進数)をみて、価格が理解できるというのは、日常生活という実務の一端だとおもうのです。

質問者のいう「実務」とは何でしょうか。
デジタル計算機の関連で8進数や16進数を知らなくても支障がないような仕事は実がありませんから、実務とは言えないと思うのですが。

投稿2019/03/20 13:33

coco_bauer

総合スコア6915

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

luxvil

2019/03/21 03:44

回答ありがとうございます。 私の思い描いていた「実務」とは、即ちプログラミング又はこれに類する業務全般です。(一方で、「プログラミングまたはこれに類する業務全般とは?」と問われると、私の中での定義が曖昧なのでお答えできないと思います。) 不勉強ゆえに回答者様の「実務とは言えないのでは?」という指摘にうなづくことも、首を振ることもできません。 私が知りたかったことの要旨は「皆さんの携わっている業務において、この知識を利用する場面はありますか?」ということでした。 そう考えると「実務」という表現は適切ではなかったのかもしれません。
guest

0

コンピュータ上でのクラッシュした場合、16進でアドレスでるため、それはどのあたりのメモリででたのかなどの解析を行ったり、色を16進、または8進で指定しなければいけない場合などに使います。
また、デバックなどで、ファイルダンプを行った場合、16進表記の場合などがあり、実際にそれがどのような内容なのか解析する場合に利用します。

投稿2019/03/20 12:35

akirafudo6

総合スコア341

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

luxvil

2019/03/21 04:07

回答ありがとうございます。 ・クラッシュした部分のアドレスが16進数で表示されるので、解析に使える。 ・8進数又は16進数で色を指定することがある。 ・デバック等をするときファイルを出力すると16進数で表示されることがある。 このように理解しました。ありがとうございます。
guest

0

高校あたりで学ぶ、行列式、微積分が、普通の生活で役に立つ場面がほとんど、無いように、n進数も無いと思います。
ただ、プログラムを作る際には、コンピュータ内部は2進数(0/1)が基本なので、知らないと色々と困る事が多いかもしれません。また、論理演算(And, Or, ...)は、2進数が基本なので、知らないと困りますが、使わなければ、問題有りません。

で、2進数での表記では簡単な数値でも桁数が多くなるので、16進数表記が分かり易くなります。8進数については、今となっては、歴史的事情かと思われます。半世紀くらい前、まだ、コンピュータが高価で一般的でなかった時代に、少しでも廉価にする事情から、8進数が使われました。何といっても、入力が 0~7までで良いので、テンキーで入力できるとか、そんな事情らしいです。(16進数は、 0~Fまで必要)
今となっては、忘れても良いと思うのですが、C言語を使う際には、頭の片隅にいれて置く必要があります。(0 で始まる数字は、8進数。このトラップに注意)

投稿2019/03/20 11:44

pepperleaf

総合スコア6383

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

luxvil

2019/03/21 03:59

回答ありがとうございます。 ○2進数及び16進数 ・2進数を知らないと困る場面は多い。 ・2進数だと桁数が大きくなるので、16進数(2⁴)が便利。 ○8進数 ・8進数は昔のPCにおいて利用されていた。テンキーで入力しやすいため。 ・現在ではほとんど使われていないものの、C言語においては使う場面がある。 要約するとこんなところでしょうか。わかりやすい回答ありがとうございます。
hayataka2049

2019/03/21 19:26

>何といっても、入力が 0~7までで良いので、テンキーで入力できるとか、そんな事情らしいです トグルスイッチをずら~っと並べて1bitずつ2進で入力してたと聞きましたが・・・ ワンボードマイコン族とかはそのまま16進入力できる機種がほとんどでしょうし。 気になってぐぐったら、ワード長12,18,24,36とかの機械がたくさんあったかららしいですね。ワード長が3の倍数なので3bitでまとめるから8進数と。
pepperleaf

2019/03/22 12:47

> luxvil さん、 昔のPCじゃないです。ミニコンです、、、、と言ってもわかる人は少数か。本体は単なる箱。自販機を一回り小さくしたもの、、と言っていいかどうか。(箱なので、おしゃれじゃないですが) 当然、表示も入力も別。そこで、C言語とUnix(→Linux)は開発されました。C言語の派生(多分)は、C++, Java, C# とか。 > hayataka2049 さん、 トグルスイッチは見たことがあります。boot strapをこれで入力したと聞きました。 (が、実演してくれなかった事に今、気が付いた) テンキーの件は、もしかしたら、都市伝説かもしれません。QWERTY配列と一緒で。ただ、ワンボードマイコンより、ミニコンの方が古いと思いますがどうでしょうか? (汎用機はもっと古いが) 確か、トグルスイッチは、3bit単位に区切られていたと思う。先頭の1bitが一つだけ外れていて、、。
guest

0

N進法は、級数展開の前準備です。

10 進数は 10^0 * a + 10^1 * b + 10^2 * c + ...
と 10 の冪展開することです。

N 進法は N^0 * a + N^1 + b + N^2 + c + ...

これを発展させると テイラー展開・マクローリン展開 とか、ラプラス変換 につながっていきます。
成分ごとの係数に分解するという概念です。

実務で利用できる場面というのは maisumakun さんの回答でいろいろ列挙されていますね。

投稿2019/03/20 21:36

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

luxvil

2019/03/21 04:02

回答ありがとうございます。 n進数の仕組みについて解説ありがとうございます。下段の「テイラー展開」以下は存じませんので、調べてみようと思います。 ありがとうございます。
guest

0

片手で 31 まで数えられるようになります。

投稿2019/03/20 12:48

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2019/03/20 12:56

中学のときに覚えましたねー 両手で1バイト+cy の計算ができるようになりました
退会済みユーザー

退会済みユーザー

2019/03/20 13:08

多分、みんな中2で覚えると思うw
pepperleaf

2019/03/20 13:59

未だにできません。その代わり、ハタチ前が長くなります。
luxvil

2019/03/21 03:50

なるほど、片手で31まで数えられるのですね。調べてみます。 中学生のときに習うと聞いてびっくりしています。私の記憶から消えてるのでしょうか…
guest

0

コンピュータの内部動作を理解するのに、2進数と16進数は必須ですね
その他は余り役に立つ場面はないかと。
まあ、あとは10進数はいかに理不尽な数値体型か、を理解できるとよろしい。

投稿2019/03/20 11:54

y_waiwai

総合スコア87784

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問