0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ビットとは何ぞや

Last updated at Posted at 2023-09-29

C言語を1週間前に学習し始めたばかりで早速「符号あり/なし」の違いのところで躓きました。そもそもビットって結局何のためにある単位なのでしょうか…状態です。
数弱なのでこういう自分が知らない面倒でややこしい基礎から今まで24年間逃げ回っていたわけですが、今度こそ逃げないぞ、ということで…
以下、ウェブサイトで見ながら学んだことを随時更新していきます。

ビットの大きさが違うと何が違うのか

ビット数の違い≒処理速度の違い、です。
nビットの時に2ⁿ通りの状態を表すことができます。
https://programming.pc-note.net/c/bit.html#:~:text=C%E8%A8%80%E8%AA%9E%E3%81%A7%E6%9C%80%E3%82%82%E3%82%B5%E3%82%A4%E3%82%BA,%E3%81%AE%E3%80%8C1%E3%83%90%E3%82%A4%E3%83%88%E3%80%8D%E3%81%A7%E3%81%99%E3%80%82&text=1%E3%83%90%E3%82%A4%E3%83%88%E3%81%AF256%E9%80%9A%E3%82%8A,%E3%81%AE%E7%8A%B6%E6%85%8B%E3%82%92%E8%A1%A8%E3%81%9B%E3%81%BE%E3%81%99%E3%80%82

n進数

2進数:1桁で2通り、2桁で4通り、3桁で8通りの数を表せる。
8進数:1桁で8通り、2桁で64通り、3桁で512通りの数を表せる。

C言語と8進数

C言語は12バイト=1ビットという時代を経ているので、8進数表記を標準でサポートしています。
各桁、0~7までの数を使って表すので10進数と区別がつかないため、
先頭を「0」にした数字の並びを8進数として扱います。
https://af-e.net/c-language-octal/

16進数

現在のコンピュータは4バイトをひと単位として使うことが多い(int型も4バイト)。
16進数は4ビットを1桁で表し、4バイトは4*8=32ビット。
つまり8桁で4バイトを表せる。
https://www.cc.kyoto-su.ac.jp/~yamada/programming/bit.html#:~:text=%E3%81%97%E3%81%8B%E3%81%97%EF%BC%91%EF%BC%96%E9%80%B2%E6%95%B0%E3%81%A0%E3%81%A8,%E3%81%A7%E8%A1%A8%E3%81%9B%E3%82%8B%E3%81%93%E3%81%A8%E3%81%AB%E3%81%AA%E3%82%8B%EF%BC%8E

16進数をC言語で10進数として出力する

以下。16進数は「0x」を頭に付けてください。

qiita.c
#include<stdio.h>
#include<stdint.h>
int main(void)
{
	int x = 0xA0;
	printf("%d\n", x);
}

出力のデフォルトは10進数なのでそのままでよし。

C言語とビット

型(char,int,long int)によって確保できるデータの大きさが決まります。
https://chokuto.ifdef.jp/urawaza/datatype.html

C言語の「signed(符号あり)」「unsigned(符号なし)」何が違うのか

  • signed(符号あり):マイナスの値を取り扱うことができます。
  • unsigned(符号なし):0からプラスの値しかとれません。

image.png

0
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?