Int ke 8 bit python biner

Manusia menggunakan sistem angka desimal (basis 10) dan duodesimal (basis 12) untuk menghitung dan mengukur (mungkin karena kita memiliki 10 jari tangan dan dua jempol kaki). Komputer menggunakan sistem bilangan biner (basis 2), karena dibuat dari komponen digital biner (dikenal sebagai transistor) yang beroperasi di dua keadaan - hidup dan mati. Dalam komputasi, kami juga menggunakan sistem bilangan heksadesimal (basis 16) atau oktal (basis 8), sebagai bentuk ringkas untuk merepresentasikan bilangan biner

Desimal (Basis 10) Sistem Bilangan

Sistem bilangan desimal memiliki sepuluh simbol.

A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
5,
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
6,
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
7,
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
8,
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
9,
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
0,
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
1,
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
2,
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
3, dan ________5______4, disebut digit. Ini menggunakan notasi posisi. Artinya, digit paling tidak penting (digit paling kanan) adalah urutan
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
5 (satuan atau satuan), digit paling kanan kedua adalah urutan
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
6 (puluhan), digit paling kanan ketiga adalah dari . Misalnya,

735 = 700 + 30 + 5 = 7×10^2 + 3×10^1 + 5×10^0

Kami akan menunjukkan angka desimal dengan akhiran opsional

A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
9 jika timbul ambiguitas

Sistem Bilangan Biner (Base 2).

Sistem bilangan biner memiliki dua simbol.

A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
5 dan
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
6, disebut bit. Ini juga merupakan notasi posisi, misalnya,

10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0

Kami akan menunjukkan angka biner dengan akhiran

1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
2. Beberapa bahasa pemrograman menunjukkan bilangan biner dengan awalan
1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
3 atau
1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
4 (e. g. ,
1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
_5), atau awalan
1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
6 dengan kutipan bit (e. g. ,
1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
_7)

Digit biner disebut bit. Delapan bit disebut byte (mengapa unit 8-bit? Mungkin karena

1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
8)

Sistem Bilangan Heksadesimal (Basis 16).

Sistem bilangan heksadesimal menggunakan 16 simbol.

A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
5,
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
6,
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
7,
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
8,
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
9,
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
0,
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
1,
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
2,
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
3,
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
4,
dn-1×rn-1 + dn-2×rn-2 + .. + d1×r1 + d0×r0
9,
1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
2,
A1C2H = 10×16^3 + 1×16^2 + 12×16^1 + 2 = 41410 (base 10)
10110B = 1×2^4 + 1×2^2 + 1×2^1 = 22 (base 10)
1,
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
9,
A1C2H = 10×16^3 + 1×16^2 + 12×16^1 + 2 = 41410 (base 10)
10110B = 1×2^4 + 1×2^2 + 1×2^1 = 22 (base 10)
3, and
A1C2H = 10×16^3 + 1×16^2 + 12×16^1 + 2 = 41410 (base 10)
10110B = 1×2^4 + 1×2^2 + 1×2^1 = 22 (base 10)
4, called hex digits. Ini adalah notasi posisi, misalnya,

A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0

Kami akan menunjukkan angka heksadesimal (singkatnya, hex) dengan akhiran

A1C2H = 10×16^3 + 1×16^2 + 12×16^1 + 2 = 41410 (base 10)
10110B = 1×2^4 + 1×2^2 + 1×2^1 = 22 (base 10)
5. Beberapa bahasa pemrograman menunjukkan angka hex dengan awalan
A1C2H = 10×16^3 + 1×16^2 + 12×16^1 + 2 = 41410 (base 10)
10110B = 1×2^4 + 1×2^2 + 1×2^1 = 22 (base 10)
6 atau
A1C2H = 10×16^3 + 1×16^2 + 12×16^1 + 2 = 41410 (base 10)
10110B = 1×2^4 + 1×2^2 + 1×2^1 = 22 (base 10)
7 (e. g. ,
A1C2H = 10×16^3 + 1×16^2 + 12×16^1 + 2 = 41410 (base 10)
10110B = 1×2^4 + 1×2^2 + 1×2^1 = 22 (base 10)
_8), atau awalan
A1C2H = 10×16^3 + 1×16^2 + 12×16^1 + 2 = 41410 (base 10)
10110B = 1×2^4 + 1×2^2 + 1×2^1 = 22 (base 10)
9 dengan digit hex dikutip (e. g. ,
To convert 261(base 10) to hexadecimal:
  261/16 => quotient=16 remainder=5
  16/16  => quotient=1  remainder=0
  1/16   => quotient=0  remainder=1 (quotient=0 stop)
  Hence, 261D = 105H (Collect the hex digits from the remainder in reverse order)
_0)

Setiap digit heksadesimal juga disebut digit hex. Sebagian besar bahasa pemrograman menerima huruf kecil

To convert 261(base 10) to hexadecimal:
  261/16 => quotient=16 remainder=5
  16/16  => quotient=1  remainder=0
  1/16   => quotient=0  remainder=1 (quotient=0 stop)
  Hence, 261D = 105H (Collect the hex digits from the remainder in reverse order)
1 hingga
To convert 261(base 10) to hexadecimal:
  261/16 => quotient=16 remainder=5
  16/16  => quotient=1  remainder=0
  1/16   => quotient=0  remainder=1 (quotient=0 stop)
  Hence, 261D = 105H (Collect the hex digits from the remainder in reverse order)
2 serta huruf besar
To convert 261(base 10) to hexadecimal:
  261/16 => quotient=16 remainder=5
  16/16  => quotient=1  remainder=0
  1/16   => quotient=0  remainder=1 (quotient=0 stop)
  Hence, 261D = 105H (Collect the hex digits from the remainder in reverse order)
3 hingga
To convert 261(base 10) to hexadecimal:
  261/16 => quotient=16 remainder=5
  16/16  => quotient=1  remainder=0
  1/16   => quotient=0  remainder=1 (quotient=0 stop)
  Hence, 261D = 105H (Collect the hex digits from the remainder in reverse order)
4

Komputer menggunakan sistem biner dalam operasi internalnya, karena dibangun dari komponen elektronik digital biner dengan 2 status - hidup dan mati. Namun, menulis atau membaca urutan bit biner yang panjang tidak praktis dan rawan kesalahan (coba baca string biner ini.

To convert 261(base 10) to hexadecimal:
  261/16 => quotient=16 remainder=5
  16/16  => quotient=1  remainder=0
  1/16   => quotient=0  remainder=1 (quotient=0 stop)
  Hence, 261D = 105H (Collect the hex digits from the remainder in reverse order)
_5, yang sama dengan heksadesimal
To convert 261(base 10) to hexadecimal:
  261/16 => quotient=16 remainder=5
  16/16  => quotient=1  remainder=0
  1/16   => quotient=0  remainder=1 (quotient=0 stop)
  Hence, 261D = 105H (Collect the hex digits from the remainder in reverse order)
6). Sistem heksadesimal digunakan sebagai bentuk kompak atau singkatan untuk bit biner. Setiap digit hex setara dengan 4 bit biner, i. e. , singkatan untuk 4 bit, sebagai berikut

HexadecimalBinaryDecimal000000100011200102300113401004501015601106701117810008910019A101010B101111C110012D110113E111014F111115

Konversi dari Heksadesimal ke Biner

Ganti setiap digit hex dengan 4 bit ekuivalen (seperti yang tercantum dalam tabel di atas), misalnya,

A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B

Konversi dari Biner ke Heksadesimal

Mulai dari bit paling kanan (least-significant bit), ganti setiap kelompok 4 bit dengan digit hex yang setara (padi bit paling kiri dengan nol jika perlu), misalnya,

1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH

Penting untuk dicatat bahwa bilangan heksadesimal menyediakan bentuk yang ringkas atau singkatan untuk merepresentasikan bit biner

Konversi dari Basis
To convert 261(base 10) to hexadecimal:
  261/16 => quotient=16 remainder=5
  16/16  => quotient=1  remainder=0
  1/16   => quotient=0  remainder=1 (quotient=0 stop)
  Hence, 261D = 105H (Collect the hex digits from the remainder in reverse order)
7 ke Desimal (Basis 10)

Diberi bilangan dasar n-digit r.

To convert 261(base 10) to hexadecimal:
  261/16 => quotient=16 remainder=5
  16/16  => quotient=1  remainder=0
  1/16   => quotient=0  remainder=1 (quotient=0 stop)
  Hence, 261D = 105H (Collect the hex digits from the remainder in reverse order)
8 (basis r), padanan desimalnya diberikan oleh

dn-1×rn-1 + dn-2×rn-2 + .. + d1×r1 + d0×r0

Sebagai contoh,

A1C2H = 10×16^3 + 1×16^2 + 12×16^1 + 2 = 41410 (base 10)
10110B = 1×2^4 + 1×2^2 + 1×2^1 = 22 (base 10)

Konversi dari Desimal (Basis 10) ke Basis
To convert 261(base 10) to hexadecimal:
  261/16 => quotient=16 remainder=5
  16/16  => quotient=1  remainder=0
  1/16   => quotient=0  remainder=1 (quotient=0 stop)
  Hence, 261D = 105H (Collect the hex digits from the remainder in reverse order)
7

Gunakan pembagian/sisa berulang. Sebagai contoh,

To convert 261(base 10) to hexadecimal:
  261/16 => quotient=16 remainder=5
  16/16  => quotient=1  remainder=0
  1/16   => quotient=0  remainder=1 (quotient=0 stop)
  Hence, 261D = 105H (Collect the hex digits from the remainder in reverse order)

Prosedur di atas sebenarnya berlaku untuk konversi antara 2 sistem dasar. Misalnya,

To convert 1023(base 4) to base 3:
  1023(base 4)/3 => quotient=25D remainder=0
  25D/3          => quotient=8D  remainder=1
  8D/3           => quotient=2D  remainder=2
  2D/3           => quotient=0   remainder=2 (quotient=0 stop)
  Hence, 1023(base 4) = 2210(base 3)

Konversi antara Sistem Dua Bilangan dengan Bagian Pecahan

  1. Pisahkan bagian integral dan pecahan
  2. Untuk bagian integral, bagi dengan radix target secara berulang, dan kumpulkan ramander dalam urutan terbalik
  3. Untuk bagian pecahan, gandakan bagian pecahan dengan radix target secara berulang, dan kumpulkan bagian integral dalam urutan yang sama

Contoh 1. Desimal ke Biner

Convert 18.6875D to binary
Integral Part = 18D
  18/2 => quotient=9 remainder=0
  9/2  => quotient=4 remainder=1
  4/2  => quotient=2 remainder=0
  2/2  => quotient=1 remainder=0
  1/2  => quotient=0 remainder=1 (quotient=0 stop)
  Hence, 18D = 10010B
Fractional Part = .6875D
  .6875*2=1.375 => whole number is 1
  .375*2=0.75   => whole number is 0
  .75*2=1.5     => whole number is 1
  .5*2=1.0      => whole number is 1
  Hence .6875D = .1011B
Combine, 18.6875D = 10010.1011B

Contoh 2. Desimal ke Heksadesimal

10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_0

Latihan (Konversi Sistem Bilangan)

  1. Ubahlah bilangan desimal berikut menjadi bilangan biner dan heksadesimal
  2. Ubahlah bilangan biner berikut menjadi bilangan heksadesimal dan desimal
    1. To convert 1023(base 4) to base 3:
        1023(base 4)/3 => quotient=25D remainder=0
        25D/3          => quotient=8D  remainder=1
        8D/3           => quotient=2D  remainder=2
        2D/3           => quotient=0   remainder=2 (quotient=0 stop)
        Hence, 1023(base 4) = 2210(base 3)
      0
    2. To convert 1023(base 4) to base 3:
        1023(base 4)/3 => quotient=25D remainder=0
        25D/3          => quotient=8D  remainder=1
        8D/3           => quotient=2D  remainder=2
        2D/3           => quotient=0   remainder=2 (quotient=0 stop)
        Hence, 1023(base 4) = 2210(base 3)
      1
    3. To convert 1023(base 4) to base 3:
        1023(base 4)/3 => quotient=25D remainder=0
        25D/3          => quotient=8D  remainder=1
        8D/3           => quotient=2D  remainder=2
        2D/3           => quotient=0   remainder=2 (quotient=0 stop)
        Hence, 1023(base 4) = 2210(base 3)
      2
  3. Ubahlah bilangan heksadesimal berikut menjadi bilangan biner dan desimal
  4. Ubahlah bilangan desimal berikut ini menjadi ekivalen biner

Jawaban. Anda dapat menggunakan Kalkulator Windows (

To convert 1023(base 4) to base 3:
  1023(base 4)/3 => quotient=25D remainder=0
  25D/3          => quotient=8D  remainder=1
  8D/3           => quotient=2D  remainder=2
  2D/3           => quotient=0   remainder=2 (quotient=0 stop)
  Hence, 1023(base 4) = 2210(base 3)
_3) untuk melakukan konversi sistem bilangan, dengan mengaturnya ke Programmer atau mode ilmiah. (Jalankan "calc" ⇒ Pilih menu "Pengaturan" ⇒ Pilih mode "Programmer" atau "Ilmiah". )

  1. To convert 1023(base 4) to base 3:
      1023(base 4)/3 => quotient=25D remainder=0
      25D/3          => quotient=8D  remainder=1
      8D/3           => quotient=2D  remainder=2
      2D/3           => quotient=0   remainder=2 (quotient=0 stop)
      Hence, 1023(base 4) = 2210(base 3)
    4,
    To convert 1023(base 4) to base 3:
      1023(base 4)/3 => quotient=25D remainder=0
      25D/3          => quotient=8D  remainder=1
      8D/3           => quotient=2D  remainder=2
      2D/3           => quotient=0   remainder=2 (quotient=0 stop)
      Hence, 1023(base 4) = 2210(base 3)
    5,
    To convert 1023(base 4) to base 3:
      1023(base 4)/3 => quotient=25D remainder=0
      25D/3          => quotient=8D  remainder=1
      8D/3           => quotient=2D  remainder=2
      2D/3           => quotient=0   remainder=2 (quotient=0 stop)
      Hence, 1023(base 4) = 2210(base 3)
    6,
    To convert 1023(base 4) to base 3:
      1023(base 4)/3 => quotient=25D remainder=0
      25D/3          => quotient=8D  remainder=1
      8D/3           => quotient=2D  remainder=2
      2D/3           => quotient=0   remainder=2 (quotient=0 stop)
      Hence, 1023(base 4) = 2210(base 3)
    7,
    To convert 1023(base 4) to base 3:
      1023(base 4)/3 => quotient=25D remainder=0
      25D/3          => quotient=8D  remainder=1
      8D/3           => quotient=2D  remainder=2
      2D/3           => quotient=0   remainder=2 (quotient=0 stop)
      Hence, 1023(base 4) = 2210(base 3)
    8,
    To convert 1023(base 4) to base 3:
      1023(base 4)/3 => quotient=25D remainder=0
      25D/3          => quotient=8D  remainder=1
      8D/3           => quotient=2D  remainder=2
      2D/3           => quotient=0   remainder=2 (quotient=0 stop)
      Hence, 1023(base 4) = 2210(base 3)
    9
  2. Convert 18.6875D to binary
    Integral Part = 18D
      18/2 => quotient=9 remainder=0
      9/2  => quotient=4 remainder=1
      4/2  => quotient=2 remainder=0
      2/2  => quotient=1 remainder=0
      1/2  => quotient=0 remainder=1 (quotient=0 stop)
      Hence, 18D = 10010B
    Fractional Part = .6875D
      .6875*2=1.375 => whole number is 1
      .375*2=0.75   => whole number is 0
      .75*2=1.5     => whole number is 1
      .5*2=1.0      => whole number is 1
      Hence .6875D = .1011B
    Combine, 18.6875D = 10010.1011B
    0,
    Convert 18.6875D to binary
    Integral Part = 18D
      18/2 => quotient=9 remainder=0
      9/2  => quotient=4 remainder=1
      4/2  => quotient=2 remainder=0
      2/2  => quotient=1 remainder=0
      1/2  => quotient=0 remainder=1 (quotient=0 stop)
      Hence, 18D = 10010B
    Fractional Part = .6875D
      .6875*2=1.375 => whole number is 1
      .375*2=0.75   => whole number is 0
      .75*2=1.5     => whole number is 1
      .5*2=1.0      => whole number is 1
      Hence .6875D = .1011B
    Combine, 18.6875D = 10010.1011B
    1,
    Convert 18.6875D to binary
    Integral Part = 18D
      18/2 => quotient=9 remainder=0
      9/2  => quotient=4 remainder=1
      4/2  => quotient=2 remainder=0
      2/2  => quotient=1 remainder=0
      1/2  => quotient=0 remainder=1 (quotient=0 stop)
      Hence, 18D = 10010B
    Fractional Part = .6875D
      .6875*2=1.375 => whole number is 1
      .375*2=0.75   => whole number is 0
      .75*2=1.5     => whole number is 1
      .5*2=1.0      => whole number is 1
      Hence .6875D = .1011B
    Combine, 18.6875D = 10010.1011B
    2,
    Convert 18.6875D to binary
    Integral Part = 18D
      18/2 => quotient=9 remainder=0
      9/2  => quotient=4 remainder=1
      4/2  => quotient=2 remainder=0
      2/2  => quotient=1 remainder=0
      1/2  => quotient=0 remainder=1 (quotient=0 stop)
      Hence, 18D = 10010B
    Fractional Part = .6875D
      .6875*2=1.375 => whole number is 1
      .375*2=0.75   => whole number is 0
      .75*2=1.5     => whole number is 1
      .5*2=1.0      => whole number is 1
      Hence .6875D = .1011B
    Combine, 18.6875D = 10010.1011B
    3,
    Convert 18.6875D to binary
    Integral Part = 18D
      18/2 => quotient=9 remainder=0
      9/2  => quotient=4 remainder=1
      4/2  => quotient=2 remainder=0
      2/2  => quotient=1 remainder=0
      1/2  => quotient=0 remainder=1 (quotient=0 stop)
      Hence, 18D = 10010B
    Fractional Part = .6875D
      .6875*2=1.375 => whole number is 1
      .375*2=0.75   => whole number is 0
      .75*2=1.5     => whole number is 1
      .5*2=1.0      => whole number is 1
      Hence .6875D = .1011B
    Combine, 18.6875D = 10010.1011B
    4,
    Convert 18.6875D to binary
    Integral Part = 18D
      18/2 => quotient=9 remainder=0
      9/2  => quotient=4 remainder=1
      4/2  => quotient=2 remainder=0
      2/2  => quotient=1 remainder=0
      1/2  => quotient=0 remainder=1 (quotient=0 stop)
      Hence, 18D = 10010B
    Fractional Part = .6875D
      .6875*2=1.375 => whole number is 1
      .375*2=0.75   => whole number is 0
      .75*2=1.5     => whole number is 1
      .5*2=1.0      => whole number is 1
      Hence .6875D = .1011B
    Combine, 18.6875D = 10010.1011B
    5
  3. Convert 18.6875D to binary
    Integral Part = 18D
      18/2 => quotient=9 remainder=0
      9/2  => quotient=4 remainder=1
      4/2  => quotient=2 remainder=0
      2/2  => quotient=1 remainder=0
      1/2  => quotient=0 remainder=1 (quotient=0 stop)
      Hence, 18D = 10010B
    Fractional Part = .6875D
      .6875*2=1.375 => whole number is 1
      .375*2=0.75   => whole number is 0
      .75*2=1.5     => whole number is 1
      .5*2=1.0      => whole number is 1
      Hence .6875D = .1011B
    Combine, 18.6875D = 10010.1011B
    6,
    Convert 18.6875D to binary
    Integral Part = 18D
      18/2 => quotient=9 remainder=0
      9/2  => quotient=4 remainder=1
      4/2  => quotient=2 remainder=0
      2/2  => quotient=1 remainder=0
      1/2  => quotient=0 remainder=1 (quotient=0 stop)
      Hence, 18D = 10010B
    Fractional Part = .6875D
      .6875*2=1.375 => whole number is 1
      .375*2=0.75   => whole number is 0
      .75*2=1.5     => whole number is 1
      .5*2=1.0      => whole number is 1
      Hence .6875D = .1011B
    Combine, 18.6875D = 10010.1011B
    7,
    Convert 18.6875D to binary
    Integral Part = 18D
      18/2 => quotient=9 remainder=0
      9/2  => quotient=4 remainder=1
      4/2  => quotient=2 remainder=0
      2/2  => quotient=1 remainder=0
      1/2  => quotient=0 remainder=1 (quotient=0 stop)
      Hence, 18D = 10010B
    Fractional Part = .6875D
      .6875*2=1.375 => whole number is 1
      .375*2=0.75   => whole number is 0
      .75*2=1.5     => whole number is 1
      .5*2=1.0      => whole number is 1
      Hence .6875D = .1011B
    Combine, 18.6875D = 10010.1011B
    8,
    Convert 18.6875D to binary
    Integral Part = 18D
      18/2 => quotient=9 remainder=0
      9/2  => quotient=4 remainder=1
      4/2  => quotient=2 remainder=0
      2/2  => quotient=1 remainder=0
      1/2  => quotient=0 remainder=1 (quotient=0 stop)
      Hence, 18D = 10010B
    Fractional Part = .6875D
      .6875*2=1.375 => whole number is 1
      .375*2=0.75   => whole number is 0
      .75*2=1.5     => whole number is 1
      .5*2=1.0      => whole number is 1
      Hence .6875D = .1011B
    Combine, 18.6875D = 10010.1011B
    9,
    10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
    00,
    10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
    01
  4. ?? . )

Memori Komputer & Representasi Data

Komputer menggunakan jumlah bit yang tetap untuk mewakili sepotong data, yang bisa berupa angka, karakter, atau lainnya. Lokasi penyimpanan n-bit dapat mewakili hingga

10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
02 entitas yang berbeda. Misalnya, lokasi memori 3-bit dapat menampung salah satu dari delapan pola biner ini.
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_03,
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
04,
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
05,
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
06,
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
07,
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
08,
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
09, atau
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
10. Oleh karena itu, ini dapat mewakili paling banyak 8 entitas berbeda. Anda dapat menggunakannya untuk mewakili angka 0 hingga 7, angka 8881 hingga 8888, karakter 'A' hingga 'H', atau hingga 8 jenis buah-buahan seperti apel, jeruk, pisang;

Bilangan bulat, misalnya, dapat direpresentasikan dalam 8-bit, 16-bit, 32-bit atau 64-bit. Anda, sebagai pemrogram, memilih panjang bit yang sesuai untuk bilangan bulat Anda. Pilihan Anda akan memberlakukan batasan pada rentang bilangan bulat yang dapat direpresentasikan. Selain panjang bit, bilangan bulat dapat direpresentasikan dalam berbagai skema representasi, mis. g. , tidak ditandatangani vs. bilangan bulat yang ditandatangani. Bilangan bulat tidak bertanda 8-bit memiliki rentang 0 hingga 255, sedangkan bilangan bulat bertanda 8-bit memiliki rentang -128 hingga 127 - keduanya mewakili 256 angka berbeda

Penting untuk dicatat bahwa lokasi memori komputer hanya menyimpan pola biner. Ini sepenuhnya terserah Anda, sebagai pemrogram, untuk memutuskan bagaimana pola-pola ini akan ditafsirkan. Misalnya, pola biner 8-bit

10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
11 dapat diartikan sebagai unsigned integer
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
12, atau karakter ASCII
To convert 261(base 10) to hexadecimal:
  261/16 => quotient=16 remainder=5
  16/16  => quotient=1  remainder=0
  1/16   => quotient=0  remainder=1 (quotient=0 stop)
  Hence, 261D = 105H (Collect the hex digits from the remainder in reverse order)
3, atau beberapa informasi rahasia yang hanya diketahui oleh Anda. Dengan kata lain, Anda harus terlebih dahulu memutuskan bagaimana merepresentasikan sepotong data dalam pola biner sebelum pola biner masuk akal. Interpretasi pola biner disebut representasi data atau pengkodean. Selain itu, skema representasi data harus disepakati oleh semua pihak, i. e. , standar industri perlu dirumuskan dan diikuti secara langsung

Setelah Anda memutuskan skema representasi data, kendala tertentu, khususnya presisi dan jangkauan akan diterapkan. Oleh karena itu, penting untuk memahami representasi data untuk menulis program yang benar dan berkinerja tinggi

Rosette Stone dan Penguraian Hieroglif Mesir
Int ke 8 bit python biner
Int ke 8 bit python biner

Hieroglif Mesir (di sebelah kiri) digunakan oleh orang Mesir kuno sejak 4000BC. Sayangnya, sejak 500AD, tidak ada lagi yang bisa membaca hieroglif Mesir kuno, sampai penemuan kembali Batu Rosette pada tahun 1799 oleh pasukan Napoleon (selama invasi Mesir Napoleon) di dekat kota Rashid (Rosetta) di Delta Nil.

Batu Rosetta (kiri) bertuliskan dekrit pada tahun 196 SM atas nama Raja Ptolemeus V. Keputusan itu muncul dalam tiga naskah. teks atas adalah hieroglif Mesir Kuno, bagian tengah naskah Demotik, dan Yunani Kuno terendah. Karena pada dasarnya menyajikan teks yang sama di ketiga skrip, dan bahasa Yunani Kuno masih dapat dipahami, itu memberikan kunci untuk menguraikan hieroglif Mesir.

Moral dari cerita ini adalah kecuali Anda mengetahui skema penyandiannya, tidak mungkin Anda dapat memecahkan kode datanya

Referensi dan gambar. Wikipedia

Representasi bilangan bulat

Bilangan bulat adalah bilangan bulat atau bilangan titik tetap dengan titik radix ditetapkan setelah bit yang paling tidak signifikan. Mereka kontras dengan bilangan real atau bilangan floating-point, di mana posisi titik radix bervariasi. Penting untuk dicatat bahwa bilangan bulat dan bilangan floating-point diperlakukan berbeda di komputer. Mereka memiliki representasi yang berbeda dan diproses secara berbeda (mis. g. , angka floating-point diproses dalam apa yang disebut prosesor floating-point). Angka floating-point akan dibahas nanti

Komputer menggunakan jumlah bit yang tetap untuk mewakili bilangan bulat. Panjang bit yang umum digunakan untuk bilangan bulat adalah 8-bit, 16-bit, 32-bit atau 64-bit. Selain bit-panjang, ada dua skema representasi untuk bilangan bulat

  1. Bilangan bulat yang tidak ditandatangani. dapat mewakili nol dan bilangan bulat positif
  2. Integer yang ditandatangani. dapat mewakili nol, bilangan bulat positif dan negatif. Tiga skema representasi telah diusulkan untuk bilangan bulat yang ditandatangani
    1. Representasi Sign-Magnitude
    2. Representasi Pelengkap 1
    3. Representasi Pelengkap 2

Anda, sebagai pemrogram, perlu memutuskan panjang bit dan skema representasi untuk bilangan bulat Anda, bergantung pada persyaratan aplikasi Anda. Misalkan Anda memerlukan penghitung untuk menghitung jumlah kecil dari 0 hingga 200, Anda dapat memilih skema bilangan bulat 8-bit tanpa tanda karena tidak ada bilangan negatif yang terlibat.

n-bit Unsigned Integer

Bilangan bulat yang tidak ditandatangani dapat mewakili nol dan bilangan bulat positif, tetapi bukan bilangan bulat negatif. Nilai bilangan bulat yang tidak ditandatangani ditafsirkan sebagai "besarnya pola biner yang mendasarinya"

Contoh 1. Misalkan

10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_14 dan pola binernya adalah
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
15, nilai bilangan bulat tak bertanda ini adalah
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
16

Contoh 2. Misalkan

10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_17 dan pola binernya adalah
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
18, nilai bilangan bulat tak bertanda ini adalah
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
19

Contoh 3. Misalkan

10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_17 dan pola binernya adalah
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
21, nilai bilangan bulat tak bertanda ini adalah
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
5

Pola n-bit dapat mewakili

10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
02 bilangan bulat yang berbeda. Integer tak bertanda n-bit dapat mewakili bilangan bulat dari
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
5 hingga
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
25, seperti yang ditabulasikan di bawah ini

nMinimumMaximum80(2^8)-1  (=255)160(2^16)-1 (=65.535)320(2^32)-1 (=4.294.967.295) (9+ digit)640(2^64)-1 (

Integer yang ditandatangani

Bilangan bulat yang ditandatangani dapat mewakili nol, bilangan bulat positif, serta bilangan bulat negatif. Tiga skema representasi tersedia untuk bilangan bulat bertanda

  1. Representasi Sign-Magnitude
  2. Representasi Pelengkap 1
  3. Representasi Pelengkap 2

Dalam ketiga skema di atas, most-significant bit (msb) disebut bit tanda. Bit tanda digunakan untuk mewakili tanda bilangan bulat - dengan 0 untuk bilangan bulat positif dan 1 untuk bilangan bulat negatif. Besarnya bilangan bulat, bagaimanapun, ditafsirkan secara berbeda dalam skema yang berbeda

Integer Tanda n-bit dalam Representasi Sign-Magnitude

Dalam representasi tanda-magnitudo

  • Most-significant bit (msb) adalah bit tanda, dengan nilai 0 mewakili bilangan bulat positif dan 1 mewakili bilangan bulat negatif
  • N-1 bit yang tersisa mewakili besarnya (nilai absolut) dari bilangan bulat. Nilai absolut dari bilangan bulat ditafsirkan sebagai "magnitudo pola biner (n-1)-bit"

Contoh 1. Misalkan

10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_14 dan representasi binernya adalah
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
27
Bit tanda adalah
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
_5 ⇒ positif
Nilai absolutnya adalah
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_29
Oleh karena itu, bilangan bulatnya adalah
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_30

Contoh 2. Misalkan

10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_14 dan representasi binernya adalah
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
32
Bit tanda adalah
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
_6 ⇒ negatif
Nilai absolutnya adalah
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_34
Oleh karena itu, bilangan bulatnya adalah
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_35

Contoh 3. Misalkan

10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_14 dan representasi binernya adalah
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
37
Bit tanda adalah
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
_5 ⇒ positif
Nilai absolutnya adalah
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_39
Oleh karena itu, bilangan bulatnya adalah
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_40

Contoh 4. Misalkan

10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_14 dan representasi binernya adalah
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
42
Bit tanda adalah
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
_6 ⇒ negatif
Nilai absolutnya adalah
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_39
Oleh karena itu, bilangan bulatnya adalah
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_45

Int ke 8 bit python biner

Kelemahan representasi tanda-magnitudo adalah

  1. Ada dua representasi (
    10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
    46 dan
    10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
    47) untuk angka nol, yang dapat menyebabkan inefisiensi dan kebingungan
  2. Bilangan bulat positif dan negatif perlu diproses secara terpisah

n-bit Tanda Integer dalam Representasi Komplemen 1

Dalam representasi komplemen 1

  • Sekali lagi, bit paling signifikan (msb) adalah bit tanda, dengan nilai 0 mewakili bilangan bulat positif dan 1 mewakili bilangan bulat negatif.
  • N-1 bit yang tersisa mewakili besarnya bilangan bulat, sebagai berikut
    • untuk bilangan bulat positif, nilai absolut bilangan bulat sama dengan "magnitudo pola biner (n-1)-bit"
    • untuk bilangan bulat negatif, nilai absolut bilangan bulat sama dengan "magnitudo komplemen (kebalikan) dari pola biner (n-1)-bit" (maka disebut komplemen 1)

Contoh 1. Misalkan

10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_14 dan representasi biner
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
27
Bit tanda adalah
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
_5 ⇒ positif
Nilai absolutnya adalah
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_29
Oleh karena itu, bilangan bulatnya adalah
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_30

Contoh 2. Misalkan

10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_14 dan representasi biner
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
32
Bit tanda adalah
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
_6 ⇒ negatif
Nilai absolut adalah komplemen dari
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
56, i. e. ,
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_57
Oleh karena itu, bilangan bulatnya adalah
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_58

Contoh 3. Misalkan

10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_14 dan representasi biner
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
37
Bit tanda adalah
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
_5 ⇒ positif
Nilai absolutnya adalah
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_39
Oleh karena itu, bilangan bulatnya adalah
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_40

Contoh 4. Misalkan

10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_14 dan representasi biner
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
65
Bit tanda adalah
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
_6 ⇒ negatif
Nilai absolut adalah komplemen dari
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
67, i. e. ,
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_39
Oleh karena itu, bilangan bulatnya adalah
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_45

Int ke 8 bit python biner

Sekali lagi, kekurangannya adalah

  1. Ada dua representasi (
    10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
    _46 dan
    10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
    71) untuk nol
  2. Bilangan bulat positif dan bilangan bulat negatif perlu diproses secara terpisah

n-bit Tanda Integer dalam Representasi Komplemen 2

Dalam representasi komplemen 2

  • Sekali lagi, bit paling signifikan (msb) adalah bit tanda, dengan nilai 0 mewakili bilangan bulat positif dan 1 mewakili bilangan bulat negatif.
  • N-1 bit yang tersisa mewakili besarnya bilangan bulat, sebagai berikut
    • untuk bilangan bulat positif, nilai absolut bilangan bulat sama dengan "magnitudo pola biner (n-1)-bit"
    • untuk bilangan bulat negatif, nilai mutlak bilangan bulat sama dengan "magnitudo komplemen pola biner (n-1)-bit ditambah satu" (maka disebut komplemen 2)

Contoh 1. Misalkan

10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_14 dan representasi biner
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
27
Bit tanda adalah
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
_5 ⇒ positif
Nilai absolutnya adalah
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_29
Oleh karena itu, bilangan bulatnya adalah
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_30

Contoh 2. Misalkan

10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_14 dan representasi biner
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
32
Bit tanda adalah
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
_6 ⇒ negatif
Nilai absolut adalah komplemen dari
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
56 ditambah
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
6, i. e. ,
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_82
Oleh karena itu, bilangan bulatnya adalah
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_83

Contoh 3. Misalkan

10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_14 dan representasi biner
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
37
Bit tanda adalah
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
_5 ⇒ positif
Nilai absolutnya adalah
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_39
Oleh karena itu, bilangan bulatnya adalah
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_40

Contoh 4. Misalkan

10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_14 dan representasi biner
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
65
Bit tanda adalah
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
_6 ⇒ negatif
Nilai absolut adalah komplemen dari
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
67 ditambah
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
6, i. e. ,
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_94
Oleh karena itu, bilangan bulatnya adalah
10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_35

Int ke 8 bit python biner

Komputer menggunakan 2's Complement Representation untuk Signed Integers

Kami telah membahas tiga representasi untuk bilangan bulat yang ditandatangani. besaran bertanda, komplemen 1 dan komplemen 2. Komputer menggunakan komplemen 2 untuk mewakili bilangan bulat bertanda. hal ini dikarenakan

  1. Hanya ada satu representasi untuk angka nol dalam komplemen 2, bukan dua representasi dalam magnitudo tanda dan komplemen 1
  2. Bilangan bulat positif dan negatif dapat diperlakukan bersama sebagai penjumlahan dan pengurangan. Pengurangan dapat dilakukan dengan menggunakan "logika penjumlahan"

Contoh 1. Penambahan Dua Bilangan Bulat Positif. Misalkan

10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_96

10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_1

Contoh 2. Pengurangan diperlakukan sebagai Penambahan Bilangan Bulat Positif dan Negatif. Misalkan

10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_97

10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_2

Contoh 3. Penambahan Dua Bilangan Bulat Negatif. Misalkan

10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_98

10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_3

Karena presisi tetap (mis. e. , jumlah bit tetap), bilangan bulat bertanda pelengkap n-bit 2 memiliki rentang tertentu. Misalnya, untuk

10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_14, rentang bilangan bulat bertanda pelengkap 2 adalah
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
00 hingga
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
01. Selama penambahan (dan pengurangan), penting untuk memeriksa apakah hasilnya melebihi rentang ini, dengan kata lain, apakah telah terjadi luapan atau kekurangan

Contoh 4. Meluap. Misalkan

A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
_02 (meluap - di luar jangkauan)

10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_4

Contoh 5. Arus bawah. Misalkan

A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
_03 (underflow - di bawah kisaran)

10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_5

Diagram berikut menjelaskan cara kerja komplemen 2. Dengan mengatur ulang garis bilangan, nilai dari

A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
00 hingga
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
01 diwakili secara berurutan dengan mengabaikan bit bawaan

Int ke 8 bit python biner

Rentang Integer Bertanda Pelengkap n-bit 2

Bilangan bulat bertanda pelengkap n-bit 2 dapat mewakili bilangan bulat dari

A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
06 hingga
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
07, seperti yang ditabulasikan. Perhatikan bahwa skema dapat mewakili semua bilangan bulat dalam rentang, tanpa ada celah. Dengan kata lain, tidak ada bilangan bulat yang hilang dalam rentang yang didukung

nminimummaximum8-(2^7)  (=-128)+(2^7)-1  (=+127)16-(2^15) (=-32.768)+(2^15)-1 (=+32.767)

Mendekode Bilangan Komplemen 2

  1. Periksa bit tanda (dilambangkan sebagai
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    08)
  2. Jika
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    _09, angkanya positif dan nilai absolutnya adalah nilai biner dari n-1 bit yang tersisa
  3. Jika
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    _10, angkanya negatif. Anda bisa "membalikkan n-1 bit dan ditambah 1" untuk mendapatkan nilai absolut dari angka negatif
    Alternatifnya, Anda dapat memindai bit n-1 yang tersisa dari kanan (bit paling tidak signifikan). Cari kejadian pertama dari 1. Balikkan semua bit ke kiri dari kejadian pertama 1. Pola terbalik memberikan nilai absolut. Misalnya,
    10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
    _6

Big Endian vs. Endian kecil

Komputer modern menyimpan satu byte data di setiap alamat atau lokasi memori, mis. e. , byte memori yang dapat dialamatkan. Oleh karena itu, bilangan bulat 32-bit disimpan dalam 4 alamat memori

Istilah "Endian" mengacu pada urutan penyimpanan byte dalam memori komputer. Dalam skema "Big Endian", byte paling signifikan disimpan terlebih dahulu di alamat memori terendah (atau big in first), sedangkan "Little Endian" menyimpan byte paling signifikan di alamat memori terendah

Misalnya, bilangan bulat 32-bit 12345678H (30541989610) disimpan sebagai 12H 34H 56H 78H dalam big endian; . Bilangan bulat 16-bit 00H 01H ditafsirkan sebagai 0001H dalam big endian, dan 0100H sebagai little endian

Latihan (Representasi Bilangan Bulat)

  1. Berapa kisaran integer 8-bit, 16-bit, 32-bit dan 64-bit, dalam representasi "unsigned" dan "signed"?
  2. Berikan nilai
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    11,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    5,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    6,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    14, dan
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    15 representasi unsigned in8-bit
  3. Berikan nilai
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    16,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    17 ,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    18,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    5,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    20,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    00, dan
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    01 dalam representasi bertanda komplemen 8-bit 2
  4. Berikan nilai
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    16,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    17 ,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    18,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    5,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    20,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    28, dan
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    01 dalam representasi magnitudo tanda 8-bit
  5. Berikan nilai
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    16,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    17 ,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    18,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    5,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    20,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    28 dan
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    01 dalam representasi komplemen 8-bit 1
  6. [TODO] lagi
Jawaban
  1. Kisaran bilangan bulat n-bit yang tidak ditandatangani adalah
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    37. Kisaran bilangan bulat bertanda pelengkap n-bit 2 adalah
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    38;
  2. A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    39,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    40,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    41,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    42,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    43
  3. A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    44,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    45,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    46,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    40,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    48,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    49,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    50
  4. A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    44,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    52,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    53,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    54,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    48,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    56,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    50
  5. A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    44,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    59,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    60,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    61,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    48,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    63,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    50

Representasi Angka Floating-Point

Angka floating-point (atau bilangan real) dapat mewakili nilai yang sangat besar (

A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
65) atau sangat kecil (
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
66). Itu juga bisa mewakili angka negatif yang sangat besar (
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
67) dan angka negatif yang sangat kecil (
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
67), serta nol, seperti yang diilustrasikan

Int ke 8 bit python biner

Bilangan floating-point biasanya dinyatakan dalam notasi ilmiah, dengan pecahan (

A1C2H = 10×16^3 + 1×16^2 + 12×16^1 + 2 = 41410 (base 10)
10110B = 1×2^4 + 1×2^2 + 1×2^1 = 22 (base 10)
4), dan eksponen (
A1C2H = 10×16^3 + 1×16^2 + 12×16^1 + 2 = 41410 (base 10)
10110B = 1×2^4 + 1×2^2 + 1×2^1 = 22 (base 10)
3) dari radix tertentu (
To convert 261(base 10) to hexadecimal:
  261/16 => quotient=16 remainder=5
  16/16  => quotient=1  remainder=0
  1/16   => quotient=0  remainder=1 (quotient=0 stop)
  Hence, 261D = 105H (Collect the hex digits from the remainder in reverse order)
7), dalam bentuk
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
72. Bilangan desimal menggunakan radix 10 (
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
73);

Representasi angka floating point tidak unik. Misalnya, angka

A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
75 dapat direpresentasikan sebagai
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
76,
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
77,
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
78, dan seterusnya. Bagian pecahan dapat dinormalisasi. Dalam bentuk normalisasi, hanya ada satu digit bukan nol sebelum titik radix. Misalnya, angka desimal
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
_79 dapat dinormalisasi menjadi
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
80;

Penting untuk dicatat bahwa angka titik-mengambang mengalami kehilangan presisi ketika direpresentasikan dengan jumlah bit yang tetap (mis. g. , 32-bit atau 64-bit). Ini karena ada jumlah bilangan real yang tak terbatas (bahkan dalam kisaran kecil 0. 0 ke 0. 1). Di sisi lain, pola biner n-bit dapat mewakili

10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
02 angka berbeda yang terbatas. Oleh karena itu, tidak semua bilangan real dapat direpresentasikan. Pendekatan terdekat akan digunakan sebagai gantinya, mengakibatkan hilangnya akurasi

Penting juga untuk dicatat bahwa aritmatika bilangan mengambang jauh lebih tidak efisien daripada aritmatika bilangan bulat. Itu bisa dipercepat dengan apa yang disebut co-prosesor floating-point khusus. Karenanya, gunakan bilangan bulat jika aplikasi Anda tidak memerlukan angka titik-mengambang

Di komputer, angka floating-point direpresentasikan dalam notasi ilmiah pecahan (

A1C2H = 10×16^3 + 1×16^2 + 12×16^1 + 2 = 41410 (base 10)
10110B = 1×2^4 + 1×2^2 + 1×2^1 = 22 (base 10)
4) dan eksponen (
A1C2H = 10×16^3 + 1×16^2 + 12×16^1 + 2 = 41410 (base 10)
10110B = 1×2^4 + 1×2^2 + 1×2^1 = 22 (base 10)
3) dengan radix 2, dalam bentuk
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
74. Baik
A1C2H = 10×16^3 + 1×16^2 + 12×16^1 + 2 = 41410 (base 10)
10110B = 1×2^4 + 1×2^2 + 1×2^1 = 22 (base 10)
3 dan
A1C2H = 10×16^3 + 1×16^2 + 12×16^1 + 2 = 41410 (base 10)
10110B = 1×2^4 + 1×2^2 + 1×2^1 = 22 (base 10)
4 bisa positif maupun negatif. Komputer modern mengadopsi standar IEEE 754 untuk merepresentasikan bilangan floating-point. Ada dua skema representasi. Presisi tunggal 32-bit dan presisi ganda 64-bit

IEEE-754 32-bit Nomor Floating-Point Presisi Tunggal

Dalam representasi floating-point presisi tunggal 32-bit

  • Bit paling signifikan adalah bit tanda (
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    08), dengan 0 untuk bilangan positif dan 1 untuk bilangan negatif
  • 8 bit berikut mewakili eksponen (
    A1C2H = 10×16^3 + 1×16^2 + 12×16^1 + 2 = 41410 (base 10)
    10110B = 1×2^4 + 1×2^2 + 1×2^1 = 22 (base 10)
    3)
  • 23 bit sisanya mewakili pecahan (
    A1C2H = 10×16^3 + 1×16^2 + 12×16^1 + 2 = 41410 (base 10)
    10110B = 1×2^4 + 1×2^2 + 1×2^1 = 22 (base 10)
    4)
Int ke 8 bit python biner
Bentuk Normalisasi

Mari kita ilustrasikan dengan sebuah contoh, misalkan pola 32-bit adalah

A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
92, dengan

  • A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    _93
  • A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    _94
  • A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    _95

Dalam bentuk ternormalisasi, pecahan sebenarnya dinormalisasi dengan 1 di depan implisit dalam bentuk

A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
96. Dalam contoh ini, pecahan sebenarnya adalah
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
_97

Bit tanda mewakili tanda angka, dengan

A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
09 untuk angka positif dan
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
10 untuk angka negatif. Dalam contoh ini dengan
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
_10, ini adalah angka negatif, i. e. ,
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
_01

Dalam bentuk normalisasi, eksponen sebenarnya adalah

A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
02 (disebut kelebihan-127 atau bias-127). Ini karena kita perlu merepresentasikan eksponen positif dan negatif. Dengan E 8-bit, mulai dari 0 hingga 255, skema kelebihan-127 dapat memberikan eksponen sebenarnya dari -127 hingga 128. Dalam contoh ini,
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
_03

Oleh karena itu, angka yang diwakili adalah

A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
_04

Formulir De-Normalisasi

Bentuk yang dinormalisasi memiliki masalah serius, dengan 1 di depan implisit untuk pecahan, itu tidak dapat mewakili angka nol. Yakinkan diri Anda tentang hal ini

Bentuk de-normalisasi dirancang untuk mewakili nol dan angka lainnya

Untuk

A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
_05, angkanya dalam bentuk de-normalisasi. 0 di depan implisit (bukan 1) digunakan untuk pecahan; . Oleh karena itu, angka nol dapat diwakili dengan
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
_05 dan
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
08 (karena
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
09)

Kami juga dapat mewakili bilangan positif dan negatif yang sangat kecil dalam bentuk de-normalisasi dengan

A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
05. Misalnya, jika
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
10,
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
05, dan
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
13. Pecahan sebenarnya adalah
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
_14. Sejak
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
_10, itu adalah angka negatif. Dengan
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
_05, eksponen sebenarnya adalah
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
06. Oleh karena itu angkanya adalah
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
18, yang merupakan angka negatif yang sangat kecil (mendekati nol)

Ringkasan

Singkatnya, nilai (

A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
_19) dihitung sebagai berikut

  • Untuk
    A3C5H = 1010 0011 1100 0101B
    102AH = 0001 0000 0010 1010B
    _20. Angka-angka ini dalam apa yang disebut bentuk normalisasi. Sign-bit mewakili tanda angka. Bagian pecahan (
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    _96) dinormalisasi dengan awalan implisit 1. Eksponen adalah bias (atau lebih) dari
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    14, sehingga mewakili eksponen positif dan negatif. Kisaran eksponen adalah
    A3C5H = 1010 0011 1100 0101B
    102AH = 0001 0000 0010 1010B
    _06 hingga
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    01
  • Untuk
    A3C5H = 1010 0011 1100 0101B
    102AH = 0001 0000 0010 1010B
    _25. Angka-angka ini dalam apa yang disebut bentuk denormalisasi. Eksponen dari
    A3C5H = 1010 0011 1100 0101B
    102AH = 0001 0000 0010 1010B
    26 bernilai sangat kecil. Bentuk denormalisasi diperlukan untuk mewakili nol (dengan
    A3C5H = 1010 0011 1100 0101B
    102AH = 0001 0000 0010 1010B
    08 dan
    A3C5H = 1010 0011 1100 0101B
    102AH = 0001 0000 0010 1010B
    05). Itu juga dapat mewakili angka positif dan negatif yang sangat kecil mendekati nol
  • Untuk
    A3C5H = 1010 0011 1100 0101B
    102AH = 0001 0000 0010 1010B
    _29, itu mewakili nilai khusus, seperti
    A3C5H = 1010 0011 1100 0101B
    102AH = 0001 0000 0010 1010B
    30 (positif dan negatif tak terhingga) dan
    A3C5H = 1010 0011 1100 0101B
    102AH = 0001 0000 0010 1010B
    31 (bukan angka). Ini di luar cakupan artikel ini

Contoh 1. Misalkan pola representasi floating-point IEEE-754 32-bit adalah

A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
32

10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_7

Contoh 2. Misalkan pola representasi floating-point IEEE-754 32-bit adalah

A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
33

10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_8

Contoh 3. Misalkan pola representasi floating-point IEEE-754 32-bit adalah

A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
34

10110B = 10000B + 0000B + 100B + 10B + 0B = 1×2^4 + 0×2^3 + 1×2^2 + 1×2^1 + 0×2^0
_9

Contoh 4 (Bentuk De-Normalisasi). Misalkan pola representasi floating-point IEEE-754 32-bit adalah

A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
35

A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
0

Latihan (Bilangan titik-mengambang)

  1. Hitung bilangan positif terbesar dan terkecil yang dapat direpresentasikan dalam bentuk normalisasi 32-bit
  2. Hitung angka negatif terbesar dan terkecil dapat direpresentasikan dalam bentuk normalisasi 32-bit
  3. Ulangi (1) untuk bentuk denormalisasi 32-bit
  4. Ulangi (2) untuk bentuk denormalisasi 32-bit
Petunjuk
  1. Bilangan positif terbesar.
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    09,
    A3C5H = 1010 0011 1100 0101B
    102AH = 0001 0000 0010 1010B
    37,
    A3C5H = 1010 0011 1100 0101B
    102AH = 0001 0000 0010 1010B
    38
    Bilangan positif terkecil.
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    09,
    A3C5H = 1010 0011 1100 0101B
    102AH = 0001 0000 0010 1010B
    40,
    A3C5H = 1010 0011 1100 0101B
    102AH = 0001 0000 0010 1010B
    41
  2. Sama seperti di atas, tetapi
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    10
  3. Bilangan positif terbesar.
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    09,
    A3C5H = 1010 0011 1100 0101B
    102AH = 0001 0000 0010 1010B
    05,
    A3C5H = 1010 0011 1100 0101B
    102AH = 0001 0000 0010 1010B
    38
    Bilangan positif terkecil.
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    09,
    A3C5H = 1010 0011 1100 0101B
    102AH = 0001 0000 0010 1010B
    05,
    A3C5H = 1010 0011 1100 0101B
    102AH = 0001 0000 0010 1010B
    48
  4. Sama seperti di atas, tetapi
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    10
Catatan Untuk Pengguna Java

Anda dapat menggunakan metode JDK

A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
_50 atau
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
51 untuk membuat presisi tunggal 32-bit
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
52 atau presisi ganda 64-bit
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
53 dengan pola bit tertentu, dan mencetak nilainya. Sebagai contoh,

A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
_1

IEEE-754 64-bit Angka Floating-Point Presisi Ganda

Skema representasi untuk presisi ganda 64-bit mirip dengan presisi tunggal 32-bit

  • Bit paling signifikan adalah bit tanda (
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    08), dengan 0 untuk bilangan positif dan 1 untuk bilangan negatif
  • 11 bit berikut mewakili eksponen (
    A1C2H = 10×16^3 + 1×16^2 + 12×16^1 + 2 = 41410 (base 10)
    10110B = 1×2^4 + 1×2^2 + 1×2^1 = 22 (base 10)
    3)
  • 52 bit sisanya mewakili pecahan (
    A1C2H = 10×16^3 + 1×16^2 + 12×16^1 + 2 = 41410 (base 10)
    10110B = 1×2^4 + 1×2^2 + 1×2^1 = 22 (base 10)
    4)
Int ke 8 bit python biner

Nilai (

A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
_19) dihitung sebagai berikut

  • Bentuk yang dinormalisasi. Untuk
    A3C5H = 1010 0011 1100 0101B
    102AH = 0001 0000 0010 1010B
    _58
  • Bentuk denormalisasi. Untuk
    A3C5H = 1010 0011 1100 0101B
    102AH = 0001 0000 0010 1010B
    _59. Ini dalam bentuk denormalisasi
  • Untuk
    A3C5H = 1010 0011 1100 0101B
    102AH = 0001 0000 0010 1010B
    _60,
    A3C5H = 1010 0011 1100 0101B
    102AH = 0001 0000 0010 1010B
    19 mewakili nilai khusus, seperti
    A3C5H = 1010 0011 1100 0101B
    102AH = 0001 0000 0010 1010B
    30 (tak terhingga),
    A3C5H = 1010 0011 1100 0101B
    102AH = 0001 0000 0010 1010B
    31 (bukan angka)

Lebih lanjut tentang Representasi Titik Mengambang

Ada tiga bagian dalam representasi floating-point

  • Bit tanda (
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    _08) cukup jelas (0 untuk bilangan positif dan 1 untuk bilangan negatif)
  • Untuk eksponen (
    A1C2H = 10×16^3 + 1×16^2 + 12×16^1 + 2 = 41410 (base 10)
    10110B = 1×2^4 + 1×2^2 + 1×2^1 = 22 (base 10)
    3), yang disebut bias (atau kelebihan) diterapkan untuk mewakili eksponen positif dan negatif. Bias diatur pada setengah dari rentang. Untuk presisi tunggal dengan eksponen 8-bit, biasnya adalah 127 (atau kelebihan-127). Untuk presisi ganda dengan eksponen 11-bit, biasnya adalah 1023 (atau kelebihan-1023)
  • Fraksi (________ 38 _______ 4) (juga disebut mantissa dan significand) terdiri dari bit awal implisit (sebelum titik radix) dan bit pecahan (setelah titik radix). Bit terdepan untuk angka yang dinormalisasi adalah 1;
Angka Floating-Point yang Dinormalisasi

Dalam bentuk normalisasi, titik radix ditempatkan setelah angka bukan nol pertama, misalnya g. ,

A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
67,
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
68. Untuk bilangan biner, bit terdepan selalu 1, dan tidak perlu direpresentasikan secara eksplisit - ini menghemat 1 bit penyimpanan

Dalam bentuk normalisasi IEEE 754

  • Untuk presisi tunggal,
    A3C5H = 1010 0011 1100 0101B
    102AH = 0001 0000 0010 1010B
    _69 dengan kelebihan 127. Oleh karena itu, eksponen sebenarnya adalah dari
    A3C5H = 1010 0011 1100 0101B
    102AH = 0001 0000 0010 1010B
    06 hingga
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    01. Eksponen negatif digunakan untuk mewakili angka kecil (<1. 0); . 0)
    A3C5H = 1010 0011 1100 0101B
    102AH = 0001 0000 0010 1010B
    _72
  • Untuk presisi ganda,
    A3C5H = 1010 0011 1100 0101B
    102AH = 0001 0000 0010 1010B
    _73 dengan kelebihan 1023. Eksponen sebenarnya adalah dari
    A3C5H = 1010 0011 1100 0101B
    102AH = 0001 0000 0010 1010B
    74 hingga
    A3C5H = 1010 0011 1100 0101B
    102AH = 0001 0000 0010 1010B
    75, dan
    A3C5H = 1010 0011 1100 0101B
    102AH = 0001 0000 0010 1010B
    _76

Perhatikan bahwa pola n-bit memiliki jumlah kombinasi yang terbatas (

A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
77), yang dapat mewakili angka berbeda yang terbatas. Tidak mungkin untuk merepresentasikan bilangan tak terhingga pada sumbu sebenarnya (bahkan rentang kecil mengatakan 0. 0 sampai 1. 0 memiliki angka tak terbatas). Artinya, tidak semua bilangan floating-point dapat direpresentasikan secara akurat. Sebaliknya, pendekatan terdekat digunakan, yang menyebabkan hilangnya akurasi

Angka floating-point minimum dan maksimum yang dinormalisasi adalah

PresisiNormalisasi N(min)Normalisasi N(maks)Tunggal0080 0000H
0 00000001 00000000000000000000000B
E = 1, F = 0
N(menit) = 1. 0B × 2^-126
(≈1. 17549435 × 10^-38)7F7F FFFFH
0 11111110 00000000000000000000000B
E = 254, F = 0
N(maks) = 1. 1. 1B × 2^127 = (2 - 2^-23) × 2^127
(≈3. 4028235 × 10^38) Ganda0010 0000 0000 0000H
N(menit) = 1. 0B × 2^-1022
(≈2. 2250738585072014 × 10^-308)7FEF FFFF FFFF FFFFH
N(maks) = 1. 1. 1B × 2^1023 = (2 - 2^-52) × 2^1023
(≈1. 7976931348623157 × 10^308)
Int ke 8 bit python biner
Nomor Floating-Point yang Didenormalisasi

Jika

A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
_78, tetapi pecahannya bukan nol, maka nilainya dalam bentuk terdenormalisasi, dan diasumsikan bit awal 0, sebagai berikut

  • Untuk presisi tunggal,
    A3C5H = 1010 0011 1100 0101B
    102AH = 0001 0000 0010 1010B
    _78,
    A3C5H = 1010 0011 1100 0101B
    102AH = 0001 0000 0010 1010B
    _80
  • Untuk presisi ganda,
    A3C5H = 1010 0011 1100 0101B
    102AH = 0001 0000 0010 1010B
    _78,
    A3C5H = 1010 0011 1100 0101B
    102AH = 0001 0000 0010 1010B
    _82

Bentuk yang didenormalisasi dapat mewakili angka yang sangat kecil mendekati nol, dan nol, yang tidak dapat direpresentasikan dalam bentuk yang dinormalisasi, seperti yang ditunjukkan pada gambar di atas

Minimum dan maksimum bilangan floating-point yang didenormalisasi adalah

PresisiDenormalisasi D(mnt)Denormalisasi D(maks)Tunggal0000 0001H
0 00000000 00000000000000000000001B
E = 0, F = 00000000000000000000001B
D(menit) = 0. 0. 1 × 2^-126 = 1 × 2^-23 × 2^-126 = 2^-149
(≈1. 4 × 10^-45)007F FFFFH
0 00000000 11111111111111111111111B
E = 0, F = 11111111111111111111111B
D(maks) = 0. 1. 1 × 2^-126 = (1-2^-23)×2^-126
(≈1. 1754942 × 10^-38) Ganda0000 0000 0000 0001H
D(menit) = 0. 0. 1 × 2^-1022 = 1 × 2^-52 × 2^-1022 = 2^-1074
(≈4. 9 × 10^-324)001F FFFF FFFF FFFFH
D(maks) = 0. 1. 1 × 2^-1022 = (1-2^-52)×2^-1022
(≈4. 4501477170144023 × 10^-308)
Nilai Khusus

Nol. Nol tidak dapat direpresentasikan dalam bentuk normalisasi, dan harus direpresentasikan dalam bentuk denormalisasi dengan

A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
05 dan
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
08. Ada dua representasi untuk nol.
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
85 dengan
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
09 dan
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
87 dengan
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
10

Ketakterbatasan. Nilai + tak terhingga (mis. g. ,

A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
_89) dan -infinity (mis. g. ,
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
90) diwakili dengan eksponen semua 1 (
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
29 untuk presisi tunggal dan
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
60 untuk presisi ganda),
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
08, dan
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
09 (untuk
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
95) dan
A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
10 (untuk ____9__7)___

Bukan Angka (NaN).

A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
31 menunjukkan nilai yang tidak dapat direpresentasikan sebagai bilangan real (mis. g.
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
_99).
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
31 dilambangkan dengan Pangkat semua 1 (
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
29 untuk presisi tunggal dan
A3C5H = 1010 0011 1100 0101B
102AH = 0001 0000 0010 1010B
60 untuk presisi ganda) dan pecahan bukan nol

Pengkodean Karakter

Dalam memori komputer, karakter "dikodekan" (atau "diwakili") menggunakan "skema pengkodean karakter" yang dipilih (alias "set karakter", "set karakter", "peta karakter", atau "halaman kode")

Misalnya, di ASCII (serta Latin1, Unicode, dan banyak rangkaian karakter lainnya)

  • nomor kode
    1001001010B = 0010 0100 1010B = 24AH
    10001011001011B = 0010 0010 1100 1011B = 22CBH
    03 sampai
    1001001010B = 0010 0100 1010B = 24AH
    10001011001011B = 0010 0010 1100 1011B = 22CBH
    04 masing-masing mewakili
    To convert 261(base 10) to hexadecimal:
      261/16 => quotient=16 remainder=5
      16/16  => quotient=1  remainder=0
      1/16   => quotient=0  remainder=1 (quotient=0 stop)
      Hence, 261D = 105H (Collect the hex digits from the remainder in reverse order)
    3 sampai
    1001001010B = 0010 0100 1010B = 24AH
    10001011001011B = 0010 0010 1100 1011B = 22CBH
    06
  • nomor kode
    1001001010B = 0010 0100 1010B = 24AH
    10001011001011B = 0010 0010 1100 1011B = 22CBH
    07 sampai
    1001001010B = 0010 0100 1010B = 24AH
    10001011001011B = 0010 0010 1100 1011B = 22CBH
    08 masing-masing mewakili
    To convert 261(base 10) to hexadecimal:
      261/16 => quotient=16 remainder=5
      16/16  => quotient=1  remainder=0
      1/16   => quotient=0  remainder=1 (quotient=0 stop)
      Hence, 261D = 105H (Collect the hex digits from the remainder in reverse order)
    1 sampai
    1001001010B = 0010 0100 1010B = 24AH
    10001011001011B = 0010 0010 1100 1011B = 22CBH
    10
  • nomor kode
    1001001010B = 0010 0100 1010B = 24AH
    10001011001011B = 0010 0010 1100 1011B = 22CBH
    _11 sampai
    1001001010B = 0010 0100 1010B = 24AH
    10001011001011B = 0010 0010 1100 1011B = 22CBH
    12 masing-masing mewakili
    1001001010B = 0010 0100 1010B = 24AH
    10001011001011B = 0010 0010 1100 1011B = 22CBH
    13 sampai
    1001001010B = 0010 0100 1010B = 24AH
    10001011001011B = 0010 0010 1100 1011B = 22CBH
    14

Penting untuk dicatat bahwa skema representasi harus diketahui sebelum pola biner dapat diinterpretasikan. e. g. , pola 8-bit "

1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
_15" dapat mewakili apa pun di bawah matahari yang hanya diketahui oleh orang yang mengkodekannya

Skema pengkodean karakter yang paling umum digunakan adalah. 7-bit ASCII (ISO/IEC 646) dan 8-bit Latin-x (ISO/IEC 8859-x) untuk karakter eropa barat, dan Unicode (ISO/IEC 10646) untuk internasionalisasi (i18n)

Skema pengkodean 7-bit (seperti ASCII) dapat mewakili 128 karakter dan simbol. Skema pengkodean karakter 8-bit (seperti Latin-x) dapat mewakili 256 karakter dan simbol;

Kode ASCII 7-bit (alias US-ASCII, ISO/IEC 646, ITU-T T. 50)

  • ASCII (Kode Standar Amerika untuk Pertukaran Informasi) adalah salah satu skema pengkodean karakter sebelumnya
  • ASCII awalnya adalah kode 7-bit. Ini telah diperpanjang menjadi 8-bit untuk memanfaatkan organisasi memori komputer 8-bit dengan lebih baik. (Bit ke-8 pada awalnya digunakan untuk pemeriksaan paritas di komputer awal. )
  • Code numbers
    1001001010B = 0010 0100 1010B = 24AH
    10001011001011B = 0010 0010 1100 1011B = 22CBH
    16 to
    1001001010B = 0010 0100 1010B = 24AH
    10001011001011B = 0010 0010 1100 1011B = 22CBH
    17 are printable (displayable) characters as tabulated (arranged in hexadecimal and decimal) as follows:Hex0123456789ABCDEF2SP!"#$%&'()*+,-./30123456789:;<=>?4@ABCDEFGHIJKLMNO5PQRSTUVWXYZ[\]^_6`abcdefghijklmno7pqrstuvwxyz{|}~
    Dec01234567893SP!"#$%&'4()*+,-./01523456789:;6<=>?@ABCDE7FGHIJKLMNO8PQRSTUVWXY9Z[\]^_`abc10defghijklm11nopqrstuvw12xyz{|}~
    • Nomor kode
      1001001010B = 0010 0100 1010B = 24AH
      10001011001011B = 0010 0010 1100 1011B = 22CBH
      _16 adalah karakter kosong atau spasi
    • 1001001010B = 0010 0100 1010B = 24AH
      10001011001011B = 0010 0010 1100 1011B = 22CBH
      _13 sampai
      1001001010B = 0010 0100 1010B = 24AH
      10001011001011B = 0010 0010 1100 1011B = 22CBH
      14.
      1001001010B = 0010 0100 1010B = 24AH
      10001011001011B = 0010 0010 1100 1011B = 22CBH
      _21 atau
      1001001010B = 0010 0100 1010B = 24AH
      10001011001011B = 0010 0010 1100 1011B = 22CBH
      22 di mana
      1001001010B = 0010 0100 1010B = 24AH
      10001011001011B = 0010 0010 1100 1011B = 22CBH
      23 adalah nilai bilangan bulat yang setara
      1001001010B = 0010 0100 1010B = 24AH
      10001011001011B = 0010 0010 1100 1011B = 22CBH
      24
    • To convert 261(base 10) to hexadecimal:
        261/16 => quotient=16 remainder=5
        16/16  => quotient=1  remainder=0
        1/16   => quotient=0  remainder=1 (quotient=0 stop)
        Hence, 261D = 105H (Collect the hex digits from the remainder in reverse order)
      3 sampai
      1001001010B = 0010 0100 1010B = 24AH
      10001011001011B = 0010 0010 1100 1011B = 22CBH
      06.
      1001001010B = 0010 0100 1010B = 24AH
      10001011001011B = 0010 0010 1100 1011B = 22CBH
      _27 atau
      1001001010B = 0010 0100 1010B = 24AH
      10001011001011B = 0010 0010 1100 1011B = 22CBH
      28.
      To convert 261(base 10) to hexadecimal:
        261/16 => quotient=16 remainder=5
        16/16  => quotient=1  remainder=0
        1/16   => quotient=0  remainder=1 (quotient=0 stop)
        Hence, 261D = 105H (Collect the hex digits from the remainder in reverse order)
      3 hingga
      1001001010B = 0010 0100 1010B = 24AH
      10001011001011B = 0010 0010 1100 1011B = 22CBH
      06 terus menerus tanpa celah
    • To convert 261(base 10) to hexadecimal:
        261/16 => quotient=16 remainder=5
        16/16  => quotient=1  remainder=0
        1/16   => quotient=0  remainder=1 (quotient=0 stop)
        Hence, 261D = 105H (Collect the hex digits from the remainder in reverse order)
      1 hingga
      1001001010B = 0010 0100 1010B = 24AH
      10001011001011B = 0010 0010 1100 1011B = 22CBH
      10.
      1001001010B = 0010 0100 1010B = 24AH
      10001011001011B = 0010 0010 1100 1011B = 22CBH
      _33 atau
      1001001010B = 0010 0100 1010B = 24AH
      10001011001011B = 0010 0010 1100 1011B = 22CBH
      34.
      To convert 261(base 10) to hexadecimal:
        261/16 => quotient=16 remainder=5
        16/16  => quotient=1  remainder=0
        1/16   => quotient=0  remainder=1 (quotient=0 stop)
        Hence, 261D = 105H (Collect the hex digits from the remainder in reverse order)
      3 hingga
      1001001010B = 0010 0100 1010B = 24AH
      10001011001011B = 0010 0010 1100 1011B = 22CBH
      06 juga terus menerus tanpa celah. Namun, ada celah antara huruf besar dan huruf kecil. Untuk mengonversi antara huruf besar dan kecil, balikkan nilai bit-5
  • Nomor kode
    1001001010B = 0010 0100 1010B = 24AH
    10001011001011B = 0010 0010 1100 1011B = 22CBH
    37 sampai
    1001001010B = 0010 0100 1010B = 24AH
    10001011001011B = 0010 0010 1100 1011B = 22CBH
    38, dan
    1001001010B = 0010 0100 1010B = 24AH
    10001011001011B = 0010 0010 1100 1011B = 22CBH
    39 adalah karakter kontrol khusus, yang tidak dapat dicetak (non-displayable), seperti tabel di bawah ini. Banyak dari karakter ini digunakan pada masa-masa awal untuk kontrol transmisi (mis. g. , STX, ETX) dan kontrol printer (mis. g. , Form-Feed), yang sekarang sudah usang. Kode bermakna yang tersisa saat ini adalah
    • 1001001010B = 0010 0100 1010B = 24AH
      10001011001011B = 0010 0010 1100 1011B = 22CBH
      _40 untuk Tab (
      1001001010B = 0010 0100 1010B = 24AH
      10001011001011B = 0010 0010 1100 1011B = 22CBH
      41)
    • 1001001010B = 0010 0100 1010B = 24AH
      10001011001011B = 0010 0010 1100 1011B = 22CBH
      _42 untuk Line-Feed atau baris baru (LF atau
      1001001010B = 0010 0100 1010B = 24AH
      10001011001011B = 0010 0010 1100 1011B = 22CBH
      43) dan
      1001001010B = 0010 0100 1010B = 24AH
      10001011001011B = 0010 0010 1100 1011B = 22CBH
      44 untuk Carriage-Return (CR atau
      1001001010B = 0010 0100 1010B = 24AH
      10001011001011B = 0010 0010 1100 1011B = 22CBH
      45), yang digunakan sebagai pembatas baris (alias pemisah baris, akhir baris) untuk file teks. Sayangnya tidak ada standar untuk pembatas garis. Unix dan Mac menggunakan
      1001001010B = 0010 0100 1010B = 24AH
      10001011001011B = 0010 0010 1100 1011B = 22CBH
      _42 (LF atau "
      1001001010B = 0010 0100 1010B = 24AH
      10001011001011B = 0010 0010 1100 1011B = 22CBH
      47"), Windows menggunakan
      1001001010B = 0010 0100 1010B = 24AH
      10001011001011B = 0010 0010 1100 1011B = 22CBH
      48 (CR+LF atau "
      1001001010B = 0010 0100 1010B = 24AH
      10001011001011B = 0010 0010 1100 1011B = 22CBH
      49"). Bahasa pemrograman seperti C/C++/Java (yang dibuat di Unix) menggunakan
      1001001010B = 0010 0100 1010B = 24AH
      10001011001011B = 0010 0010 1100 1011B = 22CBH
      42 (LF atau "
      1001001010B = 0010 0100 1010B = 24AH
      10001011001011B = 0010 0010 1100 1011B = 22CBH
      47")
    • Dalam bahasa pemrograman seperti C/C++/Java, line-feed (
      1001001010B = 0010 0100 1010B = 24AH
      10001011001011B = 0010 0010 1100 1011B = 22CBH
      42) dilambangkan sebagai
      1001001010B = 0010 0100 1010B = 24AH
      10001011001011B = 0010 0010 1100 1011B = 22CBH
      43, carriage-return (
      1001001010B = 0010 0100 1010B = 24AH
      10001011001011B = 0010 0010 1100 1011B = 22CBH
      44) sebagai
      1001001010B = 0010 0100 1010B = 24AH
      10001011001011B = 0010 0010 1100 1011B = 22CBH
      55, tab (
      1001001010B = 0010 0100 1010B = 24AH
      10001011001011B = 0010 0010 1100 1011B = 22CBH
      40) sebagai
      1001001010B = 0010 0100 1010B = 24AH
      10001011001011B = 0010 0010 1100 1011B = 22CBH
      41
DECHEXArtiDECHEXArti000NULNull1711DC1Kontrol Perangkat 1101SOHMulai Judul 1812DC2Kontrol Perangkat 2202STXMulai Teks 1913DC3Kontrol Perangkat 3303ETXAkhir Teks2014DC4Kontrol Perangkat 4404EOTEnd of Transmission2115NAKNegatif Ack. 505ENQEnquiry2216SYNSync. Idle606ACKAcknowledgment2317ETBEnd of Transmission707BELBell2418CANCancel808BSBack Space
1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
582519EMEnd of Medium909HTHorizontal Tab
1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
41261ASUBSubstitute100ALFLine Feed
1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
43271BESCEscape110BVTVertical Feed281CIS4File Separator120CFFForm Feed
To convert 261(base 10) to hexadecimal:
  261/16 => quotient=16 remainder=5
  16/16  => quotient=1  remainder=0
  1/16   => quotient=0  remainder=1 (quotient=0 stop)
  Hence, 261D = 105H (Collect the hex digits from the remainder in reverse order)
2291DIS3Group Separator130DCRCarriage Return
1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
55301EIS2Record Separator140ESOShift Out311FIS1Unit Separator150FSIShift In1610DLEDatalink Escape1277FDELDelete

8-bit Latin-1 (alias ISO/IEC 8859-1)

ISO/IEC-8859 adalah kumpulan standar pengkodean karakter 8-bit untuk bahasa barat

ISO/IEC 8859-1, alias abjad Latin No. 1, atau singkatnya Latin-1, adalah skema pengkodean yang paling umum digunakan untuk bahasa Eropa Barat. Ini memiliki 191 karakter yang dapat dicetak dari skrip latin, yang mencakup bahasa seperti Inggris, Jerman, Italia, Portugis, dan Spanyol. Latin-1 kompatibel dengan kode US-ASCII 7-bit. Artinya, 128 karakter pertama dalam bahasa Latin-1 (nomor kode 0 hingga 127 (7FH)), sama dengan US-ASCII. Nomor kode 128 (80H) hingga 159 (9FH) tidak ditetapkan. Nomor kode 160 (A0H) hingga 255 (FFH) diberikan sebagai berikut

Hex0123456789Abcdefanbsp¡ ¢ £ ¤ ¥ ¦§¨ © ª «¬shy®¯b ° ± ² ·éóóéééadisìóýónyóóóny '×ééééadisèþééééadisèééééééadisèééééééadisèöéééééadisèöéééééadisèöéééééadis »éééééadis» »»:» »» »» »» »» »» +

ISO/IEC-8859 memiliki 16 bagian. Selain Bagian 1 yang paling umum digunakan, Bagian 2 dimaksudkan untuk Eropa Tengah (Polandia, Ceko, Hungaria, dll), Bagian 3 untuk Eropa Selatan (Turki, dll), Bagian 4 untuk Eropa Utara (Estonia, Latvia, dll), . Bagian 16 untuk Eropa Tenggara

Ekstensi 8-bit lain dari US-ASCII (Ekstensi ASCII)

Selain ISO-8859-x standar, ada banyak ekstensi ASCII 8-bit, yang tidak kompatibel satu sama lain

ANSI (American National Standards Institute) (alias Windows-1252, atau Windows Codepage 1252). untuk huruf Latin yang digunakan dalam sistem DOS/Windows lawas. Ini adalah superset dari ISO-8859-1 dengan nomor kode 128 (80H) hingga 159 (9FH) yang ditetapkan untuk karakter yang dapat ditampilkan, seperti tanda kutip tunggal "pintar" dan tanda kutip ganda. Masalah umum di browser web adalah semua tanda kutip dan apostrof (dihasilkan oleh "tanda kutip pintar" di beberapa perangkat lunak Microsoft) diganti dengan tanda tanya atau beberapa simbol aneh. Itu karena dokumen diberi label sebagai ISO-8859-1 (bukan Windows-1252), di mana nomor kode ini tidak ditentukan. Sebagian besar browser modern dan klien email memperlakukan charset ISO-8859-1 sebagai Windows-1252 untuk mengakomodasi kesalahan pelabelan tersebut

Hex0123456789ABCDEF8€‚ƒ„…†‡ˆ‰Š‹ŒŽ9‘’“”•–—™š›œžŸ

EBCDIC (Kode Pertukaran Desimal Kode Biner Diperpanjang). Digunakan pada komputer IBM awal

Unicode (alias Kumpulan Karakter Universal ISO/IEC 10646)

Sebelum Unicode, tidak ada skema pengkodean karakter tunggal yang dapat mewakili karakter dalam semua bahasa. Misalnya, eropa barat menggunakan beberapa skema pengkodean (dalam keluarga ISO-8859-x). Bahkan satu bahasa seperti Cina memiliki beberapa skema pengkodean (GB2312/GBK, BIG5). Banyak skema pengkodean yang saling bertentangan, mis. e. , nomor kode yang sama diberikan untuk karakter yang berbeda

Unicode bertujuan untuk menyediakan skema pengkodean karakter standar, yang universal, efisien, seragam, dan tidak ambigu. Standar Unicode dikelola oleh organisasi nirlaba yang disebut Konsorsium Unicode (@ www. unicode. org). Unicode adalah standar ISO/IEC 10646

Unicode kompatibel dengan 7-bit US-ASCII dan 8-bit Latin-1 (ISO-8859-1). Artinya, 128 karakter pertama sama dengan US-ASCII;

Unicode awalnya menggunakan 16 bit (disebut UCS-2 atau Unicode Character Set - 2 byte), yang dapat mewakili hingga 65.536 karakter. Sejak itu telah diperluas menjadi lebih dari 16 bit, saat ini berdiri di 21 bit. Kisaran kode legal dalam ISO/IEC 10646 sekarang dari U+0000H hingga U+10FFFFH (21 bit atau sekitar 2 juta karakter), mencakup semua skrip sejarah saat ini dan kuno. Rentang 16-bit asli dari U+0000H hingga U+FFFFH (65536 karakter) dikenal sebagai Basic Multilingual Plane (BMP), mencakup semua bahasa utama yang digunakan saat ini. Karakter di luar BMP disebut Karakter Pelengkap, yang jarang digunakan

Unicode memiliki dua skema penyandian

  • UCS-2 (Set Karakter Universal - 2 Byte). Menggunakan 2 byte (16 bit), mencakup 65.536 karakter dalam BMP. BMP cukup untuk sebagian besar aplikasi. UCS-2 sekarang sudah usang
  • UCS-4 (Set Karakter Universal - 4 Byte). Menggunakan 4 byte (32 bit), mencakup BMP dan karakter tambahan
Int ke 8 bit python biner

UTF-8 (Format Transformasi Unicode - 8-bit)

Unicode 16/32-bit (UCS-2/4) sangat tidak efisien jika dokumen berisi sebagian besar karakter ASCII, karena setiap karakter menempati dua byte penyimpanan. Skema pengkodean panjang variabel, seperti UTF-8, yang menggunakan 1-4 byte untuk mewakili karakter, dirancang untuk meningkatkan efisiensi. Dalam UTF-8, 128 karakter US-ASCII yang umum digunakan hanya menggunakan 1 byte, tetapi beberapa karakter yang kurang umum mungkin memerlukan hingga 4 byte. Secara keseluruhan, efisiensi ditingkatkan untuk dokumen yang sebagian besar berisi teks US-ASCII

Transformasi antara Unicode dan UTF-8 adalah sebagai berikut

BitsUnicodeUTF-8 CodeBytes700000000 0xxxxxxx0xxxxxxx1 (ASCII)1100000yyy yyxxxxxx110yyyyy 10xxxxxx216zzzzyyyy yyxxxxxx1110zzzz 10yyyyyy 10xxxxxx321000uuuuu zzzzyyyy yyxxxxxx111110uuu 10uuzzyxxxy40uu

Di UTF-8, nomor Unicode yang sesuai dengan karakter ASCII 7-bit diisi dengan nol di depan; . Karenanya, UTF-8 dapat digunakan dengan semua perangkat lunak yang menggunakan ASCII. Nomor Unicode 128 ke atas, yang lebih jarang digunakan, dikodekan menggunakan lebih banyak byte (2-4 byte). UTF-8 umumnya membutuhkan lebih sedikit penyimpanan dan kompatibel dengan ASCII. Kelemahan UTF-8 adalah lebih banyak daya pemrosesan yang dibutuhkan untuk membongkar kode karena panjangnya yang bervariasi. UTF-8 adalah format paling populer untuk Unicode

Catatan

  • UTF-8 menggunakan 1-3 byte untuk karakter dalam BMP (16-bit), dan 4 byte untuk karakter tambahan di luar BMP (21-bit)
  • 128 karakter ASCII (huruf Latin dasar, angka, dan tanda baca) menggunakan satu byte. Sebagian besar karakter Eropa dan Timur Tengah menggunakan urutan 2-byte, yang mencakup huruf Latin yang diperluas (dengan aksen tilde, makron, akut, kuburan, dan lainnya), Yunani, Armenia, Ibrani, Arab, dan lainnya. Cina, Jepang dan Korea (CJK) menggunakan urutan tiga byte
  • Semua byte, kecuali 128 karakter ASCII, memiliki
    1001001010B = 0010 0100 1010B = 24AH
    10001011001011B = 0010 0010 1100 1011B = 22CBH
    63 bit awal. Dengan kata lain, byte ASCII, dengan bit
    1001001010B = 0010 0100 1010B = 24AH
    10001011001011B = 0010 0010 1100 1011B = 22CBH
    13 terkemuka, dapat diidentifikasi dan didekodekan dengan mudah

Contoh. 您好

1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
65

A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
_2

UTF-16 (Format Transformasi Unicode - 16-bit)

UTF-16 adalah skema pengkodean karakter Unicode dengan panjang variabel, yang menggunakan 2 hingga 4 byte. UTF-16 tidak umum digunakan. Tabel transformasinya adalah sebagai berikut

UnicodeUTF-16 CodeBytesxxxxxxxx xxxxxxxxSama seperti UCS-2 - tanpa penyandian2000uuuuuu zzzzyyyy yyxxxxxx
(uuuuuu≠0)110110ww wwzzzzyy 110111yy yyxxxxxx
(www = uuu - 1)4

Perhatikan bahwa untuk 65536 karakter dalam BMP, UTF-16 sama dengan UCS-2 (2 byte). Namun, 4 byte digunakan untuk karakter tambahan di luar BMP

Untuk karakter BMP, UTF-16 sama dengan UCS-2. Untuk karakter pelengkap, setiap karakter memerlukan pasangan nilai 16-bit, yang pertama dari kisaran pengganti tinggi, (

1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
66), yang kedua dari kisaran pengganti rendah (
1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
67)

UTF-32 (Format Transformasi Unicode - 32-bit)

Sama seperti UCS-4, yang menggunakan 4 byte untuk setiap karakter - tidak dikodekan

Format Multi-Byte (mis. g. , Unicode) File Teks

Endianness (urutan byte). Untuk karakter multi-byte, Anda harus memperhatikan urutan byte dalam penyimpanan. Di big endian, byte paling signifikan disimpan di lokasi memori dengan alamat terendah (byte besar terlebih dahulu). Di little endian, byte paling signifikan disimpan di lokasi memori dengan alamat tertinggi (little byte terlebih dahulu). Misalnya, 您 (dengan nomor Unicode

1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
68) disimpan sebagai
1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
69 dalam big endian; . Big endian, yang menghasilkan hex dump yang lebih mudah dibaca, lebih sering digunakan, dan seringkali merupakan default

BOM (Byte Order Mark). BOM adalah karakter Unicode khusus yang memiliki nomor kode

1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
71, yang digunakan untuk membedakan big-endian dan little-endian. Untuk big-endian, BOM muncul sebagai
1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
72 di penyimpanan. Untuk little-endian, BOM muncul sebagai
1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
73. Unicode mencadangkan dua nomor kode ini untuk mencegahnya menabrak karakter lain

File teks Unicode dapat mengambil format ini

  • Endian Besar. UCS-2BE, UTF-16BE, UTF-32BE
  • Endian kecil. UCS-2LE, UTF-16LE, UTF-32LE
  • UTF-16 dengan BOM. Karakter pertama file adalah karakter BOM, yang menentukan endianess. Untuk big-endian, BOM muncul sebagai
    1001001010B = 0010 0100 1010B = 24AH
    10001011001011B = 0010 0010 1100 1011B = 22CBH
    72 di penyimpanan. Untuk little-endian, BOM muncul sebagai
    1001001010B = 0010 0100 1010B = 24AH
    10001011001011B = 0010 0010 1100 1011B = 22CBH
    73

File UTF-8 selalu disimpan sebagai big endian. BOM tidak berperan. Namun, di beberapa sistem (khususnya Windows), BOM ditambahkan sebagai karakter pertama dalam file UTF-8 sebagai tanda tangan untuk mengidentifikasi file sebagai UTF-8 yang disandikan. Karakter BOM (

1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
71) dikodekan dalam UTF-8 sebagai
1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
77. Menambahkan BOM sebagai karakter pertama file tidak disarankan, karena dapat diinterpretasikan secara tidak benar di sistem lain. Anda dapat memiliki file UTF-8 tanpa BOM

Format File Teks

Pembatas Garis atau End-Of-Line (EOL). Terkadang, saat Anda menggunakan Windows NotePad untuk membuka file teks (dibuat di Unix atau Mac), semua baris digabungkan menjadi satu. Ini karena platform operasi yang berbeda menggunakan karakter yang berbeda sebagai pembatas garis yang disebut (atau end-of-line atau EOL). Dua karakter kontrol yang tidak dapat dicetak dilibatkan.

1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
_42 (Line-Feed atau LF) dan
1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
44 (Carriage-Return atau CR)

  • Windows/DOS menggunakan
    1001001010B = 0010 0100 1010B = 24AH
    10001011001011B = 0010 0010 1100 1011B = 22CBH
    80 (CR+LF atau "
    1001001010B = 0010 0100 1010B = 24AH
    10001011001011B = 0010 0010 1100 1011B = 22CBH
    49") sebagai EOL
  • Unix dan Mac hanya menggunakan
    1001001010B = 0010 0100 1010B = 24AH
    10001011001011B = 0010 0010 1100 1011B = 22CBH
    _42 (LF atau "
    1001001010B = 0010 0100 1010B = 24AH
    10001011001011B = 0010 0010 1100 1011B = 22CBH
    47")

File Akhir (EOF). [MELAKUKAN]

Halaman Kode CMD Windows

Skema pengkodean karakter (charset) di Windows disebut codepage. Di shell CMD, Anda dapat mengeluarkan perintah

1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
84 untuk menampilkan halaman kode saat ini, atau
1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
85 untuk mengubah halaman kode

Perhatikan itu

  • Codepage default 437 (digunakan dalam DOS asli) adalah kumpulan karakter 8-bit yang disebut Extended ASCII, yang berbeda dari Latin-1 untuk nomor kode di atas 127
  • Codepage 1252 (Windows-1252), tidak persis sama dengan Latin-1. Ini menetapkan nomor kode 80H hingga 9FH untuk huruf dan tanda baca, seperti tanda kutip tunggal dan tanda kutip ganda. Masalah umum di browser yang menampilkan tanda kutip dan apostrof dalam tanda tanya atau kotak adalah karena halaman tersebut seharusnya adalah Windows-1252, tetapi diberi label yang salah sebagai ISO-8859-1
  • Untuk internasionalisasi dan set karakter Cina. halaman kode 65001 untuk UTF8, halaman kode 1201 untuk UCS-2BE, halaman kode 1200 untuk UCS-2LE, halaman kode 936 untuk karakter Cina di GB2312, halaman kode 950 untuk karakter bahasa Cina di Big5

Set Karakter Cina

Unicode mendukung semua bahasa, termasuk bahasa Asia seperti Cina (karakter sederhana dan tradisional), Jepang dan Korea (secara kolektif disebut CJK). Ada lebih dari 20.000 karakter CJK di Unicode. Karakter Unicode sering dikodekan dalam skema UTF-8, yang sayangnya, membutuhkan 3 byte untuk setiap karakter CJK, bukan 2 byte dalam UCS-2 yang tidak dikodekan (UTF-16)

Lebih buruk lagi, ada juga berbagai rangkaian karakter Cina, yang tidak kompatibel dengan Unicode

  • GB2312/GBK. untuk karakter Cina yang disederhanakan. GB2312 menggunakan 2 byte untuk setiap karakter Cina. Bit paling signifikan (MSB) dari kedua byte diatur ke 1 untuk hidup berdampingan dengan ASCII 7-bit dengan MSB 0. Ada sekitar 6700 karakter. GBK merupakan perpanjangan dari GB2312, yang menyertakan lebih banyak karakter serta karakter Cina tradisional
  • BESAR5. untuk karakter cina tradisional BIG5 juga menggunakan 2 byte untuk setiap karakter cina. Bit paling signifikan dari kedua byte juga disetel ke 1. BIG5 tidak kompatibel dengan GBK, mis. e. , nomor kode yang sama diberikan untuk karakter yang berbeda

Misalnya, dunia dibuat lebih menarik dengan banyak standar ini

StandardCharactersCodesSimplifiedGB2312和谐BACD  D0B3UCS-2和谐548C  8C10UTF-8和谐E5928C  E8B090TraditionalBIG5和諧A94D  BFD3UCS-2和諧548C  8AE7UTF-8和諧E5928C  E8ABA7

Catatan untuk Pengguna CMD Windows. Untuk menampilkan karakter bahasa Mandarin dengan benar di shell CMD, Anda harus memilih halaman kode yang benar, mis. g. , 65001 untuk UTF8, 936 untuk GB2312/GBK, 950 untuk Big5, 1201 untuk UCS-2BE, 1200 untuk UCS-2LE, 437 untuk DOS asli. Anda dapat menggunakan perintah "

1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
_86" untuk menampilkan halaman kode saat ini dan perintah "
1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
87" untuk mengubah halaman kode. Anda juga harus memilih font yang dapat menampilkan karakter (mis. g. , Courier New, Consolas atau Lucida Console, BUKAN font Raster)

Menyusun Urutan (untuk Karakter Pemeringkatan)

String terdiri dari urutan karakter dalam huruf besar atau kecil, mis. g. ,

1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
88,
1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
89,
1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
90. Dalam menyortir atau membandingkan string, jika kita mengurutkan karakter sesuai dengan nomor kode yang mendasarinya (mis. g. , US-ASCII) karakter demi karakter, urutan contohnya adalah
1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
89,
1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
88,
1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
90 karena huruf besar memiliki nomor kode yang lebih kecil daripada huruf kecil. Ini tidak sesuai dengan apa yang disebut urutan kamus, di mana huruf besar dan kecil yang sama memiliki peringkat yang sama. Masalah umum lainnya dalam mengurutkan string adalah
1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
94 (sepuluh) kadang-kadang diurutkan di depan
1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
95 hingga
1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
96

Oleh karena itu, dalam penyortiran atau perbandingan string, urutan yang disebut collating (atau collation) sering didefinisikan, yang menentukan peringkat untuk huruf (huruf besar, huruf kecil), angka, dan simbol khusus. Ada banyak urutan susunan yang tersedia. Anda sepenuhnya dapat memilih urutan penyusunan untuk memenuhi persyaratan spesifik aplikasi Anda. Beberapa urutan susunan kamus case-insensitive memiliki peringkat yang sama untuk huruf besar dan huruf kecil yang sama, mis. e. ,

To convert 261(base 10) to hexadecimal:
  261/16 => quotient=16 remainder=5
  16/16  => quotient=1  remainder=0
  1/16   => quotient=0  remainder=1 (quotient=0 stop)
  Hence, 261D = 105H (Collect the hex digits from the remainder in reverse order)
3,
To convert 261(base 10) to hexadecimal:
  261/16 => quotient=16 remainder=5
  16/16  => quotient=1  remainder=0
  1/16   => quotient=0  remainder=1 (quotient=0 stop)
  Hence, 261D = 105H (Collect the hex digits from the remainder in reverse order)
1 ⇒
1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
99,
dn-1×rn-1 + dn-2×rn-2 + .. + d1×r1 + d0×r0
00 ⇒. ⇒
1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
_06,
1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
10. Beberapa urutan susunan kamus peka huruf besar-kecil menempatkan huruf besar sebelum pasangan huruf kecilnya, mis. e. ,
To convert 261(base 10) to hexadecimal:
  261/16 => quotient=16 remainder=5
  16/16  => quotient=1  remainder=0
  1/16   => quotient=0  remainder=1 (quotient=0 stop)
  Hence, 261D = 105H (Collect the hex digits from the remainder in reverse order)
3 ⇒
1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
99 ⇒
dn-1×rn-1 + dn-2×rn-2 + .. + d1×r1 + d0×r0
05. ⇒
To convert 261(base 10) to hexadecimal:
  261/16 => quotient=16 remainder=5
  16/16  => quotient=1  remainder=0
  1/16   => quotient=0  remainder=1 (quotient=0 stop)
  Hence, 261D = 105H (Collect the hex digits from the remainder in reverse order)
_1 ⇒
dn-1×rn-1 + dn-2×rn-2 + .. + d1×r1 + d0×r0
07. Biasanya, ruang diurutkan sebelum angka
1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
13 hingga
1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
14, diikuti oleh abjad

Urutan penyusunan seringkali bergantung pada bahasa, karena bahasa yang berbeda menggunakan kumpulan karakter yang berbeda (mis. g. , á, é, a, α) dengan perintahnya masing-masing

Untuk Pemrogram Java -
dn-1×rn-1 + dn-2×rn-2 + .. + d1×r1 + d0×r0
_10

JDK 1. 4 memperkenalkan paket

dn-1×rn-1 + dn-2×rn-2 + .. + d1×r1 + d0×r0
_11 baru untuk mendukung encoding/decoding karakter dari UCS-2 yang digunakan secara internal dalam program Java ke rangkaian karakter apa pun yang didukung yang digunakan oleh perangkat eksternal

Contoh. Program berikut mengkodekan beberapa teks Unicode dalam berbagai skema pengkodean, dan menampilkan kode Hex dari urutan byte yang dikodekan

Untuk Pemrogram Java -
dn-1×rn-1 + dn-2×rn-2 + .. + d1×r1 + d0×r0
_12 dan
dn-1×rn-1 + dn-2×rn-2 + .. + d1×r1 + d0×r0
13

Tipe data

dn-1×rn-1 + dn-2×rn-2 + .. + d1×r1 + d0×r0
_12 didasarkan pada standar Unicode 16-bit asli yang disebut UCS-2. Unicode sejak itu telah berevolusi menjadi 21 bit, dengan rentang kode dari U+0000 hingga U+10FFFF. Himpunan karakter dari U+0000 hingga U+FFFF dikenal sebagai Basic Multilingual Plane (BMP). Karakter di atas U+FFFF disebut karakter tambahan. Java 16-bit
dn-1×rn-1 + dn-2×rn-2 + .. + d1×r1 + d0×r0
_12 tidak dapat menampung karakter tambahan

Ingatlah bahwa dalam skema pengkodean UTF-16, karakter BMP menggunakan 2 byte. Itu sama dengan UCS-2. Karakter tambahan menggunakan 4 byte. dan membutuhkan sepasang nilai 16-bit, yang pertama dari kisaran pengganti tinggi, (

1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
66), yang kedua dari kisaran pengganti rendah (
1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
67)

Di Jawa,

dn-1×rn-1 + dn-2×rn-2 + .. + d1×r1 + d0×r0
13 adalah rangkaian karakter Unicode. Java, sebenarnya, menggunakan UTF-16 untuk
dn-1×rn-1 + dn-2×rn-2 + .. + d1×r1 + d0×r0
13 dan
dn-1×rn-1 + dn-2×rn-2 + .. + d1×r1 + d0×r0
20. Untuk karakter BMP sama dengan UCS-2. Untuk karakter tambahan, setiap karakter membutuhkan sepasang nilai
dn-1×rn-1 + dn-2×rn-2 + .. + d1×r1 + d0×r0
12

Metode Java yang menerima nilai

dn-1×rn-1 + dn-2×rn-2 + .. + d1×r1 + d0×r0
12 16-bit tidak mendukung karakter tambahan. Metode yang menerima nilai
dn-1×rn-1 + dn-2×rn-2 + .. + d1×r1 + d0×r0
23 32-bit mendukung semua karakter Unicode (dalam 21 bit yang lebih rendah), termasuk karakter tambahan

Ini dimaksudkan untuk menjadi diskusi akademis. Saya belum menemukan penggunaan karakter tambahan

Menampilkan Nilai Hex & Editor Hex

Kadang-kadang, Anda mungkin perlu menampilkan nilai hex dari sebuah file, terutama dalam menangani karakter Unicode. Hex Editor adalah alat praktis yang harus dimiliki oleh programmer yang baik di kotak peralatannya. Ada banyak freeware/shareware Hex Editor yang tersedia. Coba google "Editor Hex"

Saya menggunakan yang berikut ini

  • NotePad ++ dengan Plug-in Hex Editor. Sumber terbuka dan gratis. Anda dapat beralih antara tampilan Hex dan tampilan Normal dengan menekan tombol "H".
  • PSPad. Perangkat gratis. Anda dapat beralih ke tampilan Hex dengan memilih menu "Tampilan" dan memilih "Mode Edit Hex"
  • TextPad. Shareware tanpa masa kedaluwarsa. Untuk melihat nilai Hex, Anda perlu "membuka" file dengan memilih format file "biner" (??)
  • UltraEdit. Shareware, tidak gratis, uji coba 30 hari saja

Beri tahu saya jika Anda memiliki pilihan yang lebih baik, yang diluncurkan dengan cepat, mudah digunakan, dapat beralih antara Hex dan tampilan normal, gratis,

Program Java berikut dapat digunakan untuk menampilkan kode hex untuk Java Primitives (bilangan bulat, karakter, dan floating-point)

A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
_3

Di Eclipse, Anda dapat melihat kode hex untuk variabel Java primitif bilangan bulat dalam mode debug sebagai berikut. Dalam perspektif debug, panel "Variabel" ⇒ Pilih "menu" (segitiga terbalik) ⇒ Java ⇒ Preferensi Java. ⇒ Opsi Tampilan Primitif ⇒ Centang "Tampilkan nilai heksadesimal (byte, short, char, int, long)"

Ringkasan - Mengapa Mengganggu Representasi Data?

Bilangan bulat

A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
6, angka floating-point
dn-1×rn-1 + dn-2×rn-2 + .. + d1×r1 + d0×r0
25 simbol karakter
1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
63, dan string
1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
95 sama sekali berbeda di dalam memori komputer. Anda perlu mengetahui perbedaan untuk menulis program yang bagus dan berkinerja tinggi

  • Dalam bilangan bulat bertanda 8-bit, bilangan bulat
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    6 direpresentasikan sebagai
    dn-1×rn-1 + dn-2×rn-2 + .. + d1×r1 + d0×r0
    29
  • Dalam 8-bit unsigned integer, bilangan bulat
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    6 direpresentasikan sebagai
    dn-1×rn-1 + dn-2×rn-2 + .. + d1×r1 + d0×r0
    29
  • Dalam bilangan bulat bertanda 16-bit, bilangan bulat
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    6 direpresentasikan sebagai
    dn-1×rn-1 + dn-2×rn-2 + .. + d1×r1 + d0×r0
    33
  • Dalam bilangan bulat bertanda 32-bit, bilangan bulat
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    6 direpresentasikan sebagai
    dn-1×rn-1 + dn-2×rn-2 + .. + d1×r1 + d0×r0
    35
    dn-1×rn-1 + dn-2×rn-2 + .. + d1×r1 + d0×r0
    35
    dn-1×rn-1 + dn-2×rn-2 + .. + d1×r1 + d0×r0
    33
  • Dalam representasi floating-point 32-bit, nomor
    dn-1×rn-1 + dn-2×rn-2 + .. + d1×r1 + d0×r0
    25 direpresentasikan sebagai
    dn-1×rn-1 + dn-2×rn-2 + .. + d1×r1 + d0×r0
    39, i. e. ,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    _09,
    dn-1×rn-1 + dn-2×rn-2 + .. + d1×r1 + d0×r0
    41,
    A3C5H = 1010 0011 1100 0101B
    102AH = 0001 0000 0010 1010B
    08
  • Dalam representasi floating-point 64-bit, angka
    dn-1×rn-1 + dn-2×rn-2 + .. + d1×r1 + d0×r0
    25 direpresentasikan sebagai
    dn-1×rn-1 + dn-2×rn-2 + .. + d1×r1 + d0×r0
    44, i. e. ,
    A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
    09,
    dn-1×rn-1 + dn-2×rn-2 + .. + d1×r1 + d0×r0
    46,
    A3C5H = 1010 0011 1100 0101B
    102AH = 0001 0000 0010 1010B
    08
  • Dalam 8-bit Latin-1, simbol karakter
    1001001010B = 0010 0100 1010B = 24AH
    10001011001011B = 0010 0010 1100 1011B = 22CBH
    63 direpresentasikan sebagai
    dn-1×rn-1 + dn-2×rn-2 + .. + d1×r1 + d0×r0
    49 (atau
    dn-1×rn-1 + dn-2×rn-2 + .. + d1×r1 + d0×r0
    50)
  • Dalam UCS-2 16-bit, simbol karakter
    1001001010B = 0010 0100 1010B = 24AH
    10001011001011B = 0010 0010 1100 1011B = 22CBH
    63 direpresentasikan sebagai
    dn-1×rn-1 + dn-2×rn-2 + .. + d1×r1 + d0×r0
    52
  • Dalam UTF-8, simbol karakter
    1001001010B = 0010 0100 1010B = 24AH
    10001011001011B = 0010 0010 1100 1011B = 22CBH
    63 direpresentasikan sebagai
    dn-1×rn-1 + dn-2×rn-2 + .. + d1×r1 + d0×r0
    49

Jika Anda "menambahkan" bilangan bulat bertanda 16-bit

A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
6 dan karakter Latin-1
1001001010B = 0010 0100 1010B = 24AH
10001011001011B = 0010 0010 1100 1011B = 22CBH
63 atau string
dn-1×rn-1 + dn-2×rn-2 + .. + d1×r1 + d0×r0
57 Anda bisa mendapatkan kejutan

Latihan (Representasi Data)

Untuk kode 16-bit berikut

A3EH = A00H + 30H + EH = 10×16^2 + 3×16^1 + 14×16^0
_4

Berikan nilai mereka, jika mereka mewakili

  1. bilangan bulat 16-bit yang tidak ditandatangani;
  2. bilangan bulat bertanda 16-bit;
  3. dua bilangan bulat 8-bit yang tidak ditandatangani;
  4. dua bilangan bulat bertanda 8-bit;
  5. karakter Unicode 16-bit;
  6. dua karakter 8-bit ISO-8859-1

Jwb. (1)

dn-1×rn-1 + dn-2×rn-2 + .. + d1×r1 + d0×r0
_58,
dn-1×rn-1 + dn-2×rn-2 + .. + d1×r1 + d0×r0
59;

Bagaimana Anda mengonversi angka menjadi biner 8 bit dengan Python?

Dalam biner, Anda menggunakan kekuatan dua, yang berarti 8 pada dasarnya. (1(2^3)) + (0(2^2)) + (0(2^1)) + (0(2^0))= 8. Posisi 1 dan 0 menentukan pangkat yang akan dinaikkan menjadi 2. Dengan Python, Anda cukup menggunakan fungsi bin() untuk mengonversi dari nilai desimal ke nilai biner yang sesuai .

Bagaimana cara mengubah int menjadi biner Python?

Gunakan Python bin untuk Mengonversi Int ke Biner .

Bagaimana cara mengubah int ke oktal dengan Python?

Fungsi oct() mengonversi bilangan bulat menjadi string oktal. String oktal dalam Python diawali dengan 0o.