Ini ialah arahan bin_dec_hex yang boleh dijalankan dalam penyedia pengehosan percuma OnWorks menggunakan salah satu daripada berbilang stesen kerja dalam talian percuma kami seperti Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS.
JADUAL:
NAMA
bin_dec_hex - Cara menggunakan tatatanda binari, perpuluhan dan heksadesimal.
DESCRIPTION
Kebanyakan orang menggunakan sistem penomboran perpuluhan. Sistem ini menggunakan sepuluh simbol untuk mewakili
nombor. Apabila sepuluh simbol itu digunakan, ia akan bermula sekali lagi dan menambah
kedudukan ke kiri. Angka 0 hanya ditunjukkan jika ia adalah satu-satunya simbol dalam urutan,
atau jika ia bukan yang pertama.
Jika ini kedengaran samar kepada anda, inilah yang saya baru katakan dalam nombor:
0
1
2
3
4
5
6
7
8
9
10
11
12
13
dan sebagainya.
Setiap kali digit sembilan dinaikkan, ia ditetapkan semula kepada 0 dan kedudukan sebelum (ke
kiri) dinaikkan (dari 0 hingga 1). Kemudian nombor 9 boleh dilihat sebagai "00009" dan apabila kita
harus menambah 9, kami menetapkan semula kepada sifar dan menambah digit sebelum 9 jadi
nombor menjadi "00010". Sifar pendahuluan kami tidak menulis kecuali jika ia adalah satu-satunya digit
(nombor 0). Dan sudah tentu, kami menulis sifar jika ia berlaku di mana-mana di dalam atau di penghujung a
Nombor:
"00010" -> " 0010" -> " 010" -> " 10", tetapi bukan " 1 ".
Ini agak asas, anda sudah tahu perkara ini. Mengapa saya memberitahunya? Nah, komputer biasanya
tidak mewakili nombor dengan 10 digit yang berbeza. Mereka hanya menggunakan dua simbol berbeza,
iaitu "0" dan "1". Gunakan peraturan yang sama pada set digit ini dan anda mendapat binari
sistem pernomboran:
0
1
10
11
100
101
110
111
1000
1001
1010
1011
1100
1101
dan sebagainya.
Jika anda mengira bilangan baris, anda akan melihat bahawa ini sekali lagi ialah 14 nombor yang berbeza. The
nombor adalah sama dan bermakna sama seperti dalam senarai pertama, kami hanya menggunakan yang berbeza
perwakilan. Ini bermakna anda perlu mengetahui representasi yang digunakan, atau sebagaimana adanya
dipanggil sistem pernomboran atau asas. Biasanya, jika kita tidak menyatakan secara eksplisit
sistem pernomboran yang digunakan, kami secara tersirat menggunakan sistem perpuluhan. Kalau kita nak guna yang lain
sistem penomboran, kita perlu menjelaskannya. Terdapat beberapa kaedah yang diterima pakai secara meluas untuk
berbuat demikian. Satu bentuk biasa ialah menulis 1010(2) yang bermaksud bahawa anda menulis nombor di dalamnya
perwakilan binari. Ia adalah nombor sepuluh. Jika anda akan menulis 1010 tanpa menyatakan
asas, nombor itu ditafsirkan sebagai seribu sepuluh menggunakan asas 10.
Dalam buku, bentuk lain adalah biasa. Ia menggunakan subskrip (aksara kecil, lebih kurang dalam
antara dua baris). Anda boleh meninggalkan tanda kurung dalam kes itu dan tuliskan
nombor dalam aksara biasa diikuti dengan dua kecil di belakangnya.
Oleh kerana sistem penomboran yang digunakan juga dipanggil asas, kita bercakap tentang nombor 1100 asas 2,
nombor 12 asas 10.
Dalam sistem binari, adalah perkara biasa untuk menulis sifar pendahuluan. Nombor ditulis
turun dalam siri empat, lapan atau enam belas bergantung pada konteks.
Kita boleh menggunakan bentuk binari apabila bercakap dengan komputer (...pengaturcaraan...), tetapi nombor
akan mempunyai perwakilan yang besar. Nombor 65'535 (selalunya dalam sistem perpuluhan a ' ialah
digunakan untuk memisahkan blok tiga digit untuk kebolehbacaan) akan ditulis sebagai
1111111111111111(2) iaitu 16 kali digit 1. Ini sukar dan terdedah kepada ralat.
Oleh itu, kita biasanya akan menggunakan asas lain, dipanggil heksadesimal. Ia menggunakan 16 berbeza
simbol. Mula-mula simbol daripada sistem perpuluhan digunakan, selepas itu kita teruskan
aksara abjad. Kami mendapat 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E dan F. Ini
sistem dipilih kerana bentuk perenambelasan boleh ditukar kepada sistem binari sangat
dengan mudah (dan belakang).
Terdapat satu lagi sistem yang digunakan, dipanggil sistem oktal. Ini adalah lebih biasa dalam
zaman dahulu, tetapi tidak digunakan dengan kerap lagi. Kerana anda mungkin mendapati ia digunakan kadangkala, anda
harus membiasakannya dan kami akan tunjukkan di bawah. Ia adalah cerita yang sama dengan yang lain
perwakilan, tetapi dengan lapan simbol yang berbeza.
binari (2)
Perlapanan (8)
Decimal (10)
Perenambelasan (16)
(2) (8) (10) (16)
00000 0 0 0
00001 1 1 1
00010 2 2 2
00011 3 3 3
00100 4 4 4
00101 5 5 5
00110 6 6 6
00111 7 7 7
01000 10 8 8
01001 11 9 9
01010 12 10 A
01011 13 11 B
01100 14 12 C
01101 15 13 D
01110 16 14 E
01111 17 15 F
10000 20 16 10
10001 21 17 11
10010 22 18 12
10011 23 19 13
10100 24 20 14
10101 25 21 15
Kebanyakan komputer yang digunakan pada masa kini menggunakan bait lapan bit. Ini bermakna mereka menyimpan
lapan bit pada satu masa. Anda boleh melihat mengapa sistem oktal bukanlah yang paling praktikal untuk itu:
Anda memerlukan tiga digit untuk mewakili lapan bit dan ini bermakna anda perlu menggunakannya
satu digit lengkap untuk mewakili hanya dua bit (2+3+3=8). Ini satu pembaziran. Untuk heksadesimal
digit, anda hanya memerlukan dua digit yang digunakan sepenuhnya:
(2) (8) (10) (16)
11111111 377 255 FF
Anda boleh melihat sebab binari dan perenambelasan boleh ditukar dengan cepat: Untuk setiap perenambelasan
digit terdapat betul-betul empat digit binari. Ambil nombor binari: ambil empat digit daripada
sebelah kanan dan buat digit heksadesimal daripadanya (lihat jadual di atas). Ulangi ini sehingga
tiada lagi angka. Dan sebaliknya: Ambil nombor perenambelasan. Untuk setiap
digit, tulis padanan binarinya.
Komputer (atau lebih tepatnya parser yang dijalankan padanya) akan mengalami kesukaran untuk menukar a
nombor seperti 1234(16). Oleh itu nombor perenambelasan ditentukan dengan awalan. ini
awalan bergantung pada bahasa yang anda gunakan untuk menulis. Beberapa awalan ialah "0x" untuk C, "$"
untuk Pascal, "#" untuk HTML. Adalah biasa untuk mengandaikan bahawa jika nombor bermula dengan sifar, ia
ialah oktal. Tidak kira apa yang digunakan asalkan anda tahu apa itu. Saya akan menggunakan "0x"
untuk perenambelasan, "%" untuk binari dan "0" untuk perlapanan. Nombor berikut adalah semua
sama, cuma perwakilan (asas) mereka berbeza: 021 0x11 17 %00010001
Untuk melakukan aritmetik dan penukaran, anda perlu memahami satu perkara lagi. Ia adalah sesuatu
anda sudah tahu tetapi mungkin anda tidak "melihat" lagi:
Jika anda menulis 1234, (tiada awalan, jadi ia adalah perpuluhan) anda bercakap tentang nombor satu
ribu, dua ratus tiga puluh empat. Dalam sejenis formula:
1 * 1000 = 1000
2 * 100 = 200
3 * 10 = 30
4 * 1 = 4
Ini juga boleh ditulis sebagai:
1*10^3
2*10^2
3*10^1
4*10^0
di mana ^ bermaksud "kepada kuasa".
Kami menggunakan asas 10, dan kedudukan 0,1,2 dan 3. Kedudukan paling kanan sepatutnya
TIDAK didarab dengan 10. Kedua dari kanan hendaklah didarab satu kali dengan
10. Yang ketiga dari kanan didarab dengan 10 dua kali ganda. Ini berterusan untuk apa sahaja
jawatan digunakan.
Ia adalah sama dalam semua perwakilan lain:
0x1234 akan menjadi
1*16^3
2*16^2
3*16^1
4*16^0
01234 akan menjadi
1*8^3
2*8^2
3*8^1
4*8^0
Contoh ini tidak boleh dilakukan untuk binari kerana sistem itu hanya menggunakan dua simbol. Satu lagi
contoh:
%1010 ialah
1*2^3
0*2^2
1*2^1
0*2^0
Lebih mudah untuk menukarnya kepada bentuk perenambelasannya dan hanya menterjemah %1010
ke dalam 0xA. Selepas beberapa ketika anda terbiasa dengannya. Anda tidak perlu melakukan apa-apa pengiraan
lagi, tetapi hanya tahu bahawa 0xA bermakna 10.
Untuk menukar nombor perpuluhan kepada perenambelasan anda boleh menggunakan kaedah seterusnya. Ia akan mengambil
sedikit masa untuk dapat melakukan anggaran, tetapi ia akan menjadi lebih mudah apabila anda menggunakan sistem
lebih kerap. Kami akan melihat cara lain selepas itu.
Mula-mula anda perlu tahu berapa banyak kedudukan yang akan digunakan dalam sistem lain. Untuk berbuat demikian, anda
perlu mengetahui nombor maksimum yang akan anda gunakan. Nah, itu tidak sesukar yang kelihatan. Dalam
perpuluhan, nombor maksimum yang boleh anda bentuk dengan dua digit ialah "99". Maksimum untuk
tiga: "999". Nombor seterusnya memerlukan kedudukan tambahan. Balikkan idea ini dan anda akan melakukannya
lihat bahawa nombor itu boleh didapati dengan mengambil 10^3 (10*10*10 ialah 1000) tolak 1 atau 10^2 tolak
one.
Ini boleh dilakukan untuk perenambelasan juga:
16^4 = 0x10000 = 65536
16^3 = 0x1000 = 4096
16^2 = 0x100 = 256
16^1 = 0x10 = 16
Jika nombor lebih kecil daripada 65'536 ia akan muat dalam empat kedudukan. Jika bilangannya lebih besar
daripada 4'095, anda mesti menggunakan kedudukan 4. Berapa kali anda boleh menolak 4'096 daripada
nombor tanpa pergi di bawah sifar ialah digit pertama yang anda tulis. Ini akan sentiasa menjadi a
nombor dari 1 hingga 15 (0x1 hingga 0xF). Lakukan perkara yang sama untuk kedudukan lain.
Jom cuba dengan 41'029. Ia lebih kecil daripada 16^4 tetapi lebih besar daripada 16^3-1. Ini bermakna kita
perlu menggunakan empat kedudukan. Kita boleh menolak 16^3 daripada 41'029 sepuluh kali tanpa pergi
di bawah sifar. Oleh itu, digit paling kiri ialah "A", jadi kita mempunyai 0xA????. Nombornya ialah
dikurangkan kepada 41'029 - 10*4'096 = 41'029-40'960 = 69. 69 lebih kecil daripada 16^3 tetapi tidak lebih besar
daripada 16^2-1. Oleh itu, angka kedua ialah "0" dan kita kini mempunyai 0xA0??. 69 adalah lebih kecil daripada
16^2 dan lebih besar daripada 16^1-1. Kita boleh menolak 16^1 (yang biasa sahaja 16) empat kali dan
tulis "4" untuk mendapatkan 0xA04?. Tolak 64 daripada 69 (69 - 4*16) dan digit terakhir ialah 5 -->
0xA045.
Kaedah lain membina nombor dari kanan. Jom cuba 41'029 lagi. Bahagikan dengan
16 dan jangan gunakan pecahan (nombor bulat sahaja).
41'029 / 16 ialah 2'564 dengan baki 5. Tuliskan 5.
2'564 / 16 ialah 160 dengan baki 4. Tulis 4 sebelum 5.
160 / 16 ialah 10 tanpa baki. Tambah 45 dengan 0.
10 / 16 adalah di bawah satu. Tamat di sini dan tambahkan 0xA. Berakhir dengan 0xA045.
Kaedah mana yang hendak digunakan terpulang kepada anda. Gunakan apa sahaja yang sesuai untuk anda. Saya menggunakan kedua-duanya tanpa
dapat memberitahu kaedah yang saya gunakan dalam setiap kes, ia hanya bergantung pada nombor, saya fikir.
Hakikatnya, beberapa nombor akan kerap berlaku semasa pengaturcaraan. Jika nombor itu hampir dengan
satu yang saya kenali, maka saya akan menggunakan kaedah pertama (seperti 32'770 yang menjadi 32'768
+ 2 dan saya hanya tahu bahawa ia adalah 0x8000 + 0x2 = 0x8002).
Untuk binari pendekatan yang sama boleh digunakan. Asasnya ialah 2 dan bukan 16, dan bilangan
jawatan akan berkembang pesat. Menggunakan kaedah kedua mempunyai kelebihan yang anda boleh lihat
sangat mudah jika anda perlu menulis sifar atau satu: jika anda membahagi dua bakinya
akan menjadi sifar jika ia adalah nombor genap dan satu jika ia adalah nombor ganjil:
41029 / 2 = 20514 baki 1
20514 / 2 = 10257 baki 0
10257 / 2 = 5128 baki 1
5128 / 2 = 2564 baki 0
2564 / 2 = 1282 baki 0
1282 / 2 = 641 baki 0
641 / 2 = 320 baki 1
320 / 2 = 160 baki 0
160 / 2 = 80 baki 0
80 / 2 = 40 baki 0
40 / 2 = 20 baki 0
20 / 2 = 10 baki 0
10 / 2 = 5 baki 0
5 / 2 = 2 baki 1
2 / 2 = 1 baki 0
1/2 di bawah 0 baki 1
Tuliskan keputusan dari kanan ke kiri: %1010000001000101
Kumpulan oleh empat:
% 1010000001000101
% 101000000100 0101
% 10100000 0100 0101
%1010 0000 0100 0101
Tukar kepada perenambelasan: 0xA045
Kumpulan %1010000001000101 dengan tiga dan tukarkan kepada perlapanan:
% 1010000001000101
% 1010000001000 101
% 1010000001 000 101
%1010000 001 000 101
%1010 000 001 000 101
%1 010 000 001 000 101
%001 010 000 001 000 101
1 2 0 1 0 5 --> 0120105
Jadi: %1010000001000101 = 0120105 = 0xA045 = 41029
atau: 1010000001000101(2) = 120105(8) = A045(16) = 41029(10)
atau: 1010000001000101(2) = 120105(8) = A045(16) = 41029
Pada mulanya semasa menambah nombor, anda akan menukarnya kepada bentuk perpuluhan dan kemudian kembali
ke dalam bentuk asal selepas melakukan penambahan. Jika anda menggunakan sistem pernomboran yang lain
selalunya, anda akan melihat bahawa anda akan dapat melakukan aritmetik secara langsung dalam pangkalan itu
digunakan. Dalam mana-mana perwakilan ia adalah sama, tambah nombor di sebelah kanan, tuliskan
digit paling kanan daripada hasilnya, ingat digit lain dan gunakannya pada digit seterusnya
bulat. Teruskan dengan digit kedua dari kanan dan seterusnya:
%1010 + %0111 --> 10 + 7 --> 17 --> %00010001
akan menjadi
% 1010
%0111 +
||||
|||+-- tambah 0 + 1, keputusan ialah 1, tiada apa yang perlu diingat
||+--- tambah 1 + 1, hasilnya ialah %10, tulis 0 dan ingat 1
|+---- tambah 0 + 1 + 1(diingat), hasil = 0, ingat 1
+----- tambah 1 + 0 + 1(diingat), hasil = 0, ingat 1
tiada apa yang perlu ditambah, 1 diingati, hasil = 1
--------
%10001 ialah hasilnya, saya suka menulisnya sebagai %00010001
Untuk nilai yang rendah, cuba lakukan pengiraan sendiri, kemudian semaknya dengan kalkulator.
Lebih banyak anda membuat pengiraan sendiri, lebih banyak anda akan mendapati bahawa anda tidak membuat
kesilapan. Pada akhirnya, anda akan membuat pengiraan dalam pangkalan lain semudah anda melakukannya
perpuluhan.
Apabila nombor semakin besar, anda perlu sedar bahawa komputer tidak dipanggil a
komputer hanya untuk mempunyai nama yang bagus. Terdapat banyak kalkulator berbeza yang tersedia, gunakan
mereka. Untuk Unix anda boleh menggunakan "bc" yang merupakan singkatan untuk Kalkulator Binari. Ia mengira tidak
hanya dalam perpuluhan, tetapi dalam semua asas yang anda mahu gunakan (antaranya Binari).
Untuk orang di Windows: Mulakan kalkulator (mula->program->aksesori->kalkulator) dan
jika perlu klik view->scientific. Anda kini mempunyai kalkulator saintifik dan boleh mengira
dalam binari atau perenambelasan.
Gunakan bin_dec_hex dalam talian menggunakan perkhidmatan onworks.net