BCD (karakter kodlaması) - BCD (character encoding)

BCD Değişim Kodları
sınıflandırma 6 bit alfanümerik temel Latin kodlamaları
tarafından başarıldı EBCDIC

Alfanümerik BCD , alfamerik BCD , BCD Değişim Kodu veya BCDIC olarak da adlandırılan BCD ( ikili kodlu ondalık ), sayıların, büyük Latin harflerinin ve altı bitlik karakter kodları olarak bazı özel ve kontrol karakterlerinin bir temsili ailesidir .

ASCII gibi sonraki kodlamalardan farklı olarak , BCD kodları standartlaştırılmamıştır. Farklı bilgisayar üreticilerinin ve hatta aynı üreticinin farklı ürün hatlarının çoğu zaman kendi çeşitleri vardı ve bazen benzersiz karakterler içeriyordu. Bazı FIELDATA varyantları veya Transcode gibi tamamen farklı eşlemelere sahip diğer altı bitlik kodlamalar bazen yanlış BCD olarak adlandırılır.

BCD'nin birçok varyantı, '0' ile '9' arasındaki karakterleri karşılık gelen ikili değerler olarak kodlar.

Tarih

Teknik olarak, ikili kodlu ondalık sayı, her bir ondalık basamağın sabit sayıda bit, genellikle dört ile temsil edildiği ondalık sayıların kodlamasını tanımlar.

1928'de IBM kartının piyasaya sürülmesiyle IBM , daha sonra diğer üreticiler tarafından benimsenen alfasayısal bilgileri temsil edebilen bir kod oluşturdu . Bu kod, 0-9 arasındaki sayıları tek bir yumrukla temsil eder ve büyük harfler ve özel karakterler için birden fazla delgi kullanır. Bir harfin iki zımbası vardır (bölge [12,11,0] + rakam [1–9]); çoğu özel karakterin iki veya üç zımbası vardır (alan [12,11,0,veya hiçbiri] + rakam [2–7] + 8).

BCD kodu, basamak sıralarını (dokuz satır, artı delinmemiş) düşük dört bite ve bölge satırlarını (üç satır, artı delinmemiş) yüksek bitlere kodlayarak delikli kart kodunun altı bitlik bir ikili koda uyarlanmasıdır. iki bit. Basamak sıfır (satır 0 tek bir zımba) aralıksız 8'de bir zımba ile aralığında 2-7 bir rakamı birleştirerek 15'e kadar değerler 10 genellikle bir şekilde özel olarak ele ve haneli bir kod uzatılmıştır IBM uygulanan ikili kodlu ondalık sayı ve BCD terimleri , IBM 1620 , IBM 1400 serisi ve IBM 700/7000 serisinin Ondalık Mimarisi olmayan üyeleri de dahil olmak üzere, çoğu erken IBM bilgisayarında kullanılan BCD alfameriklerinin varyasyonlarını ifade eder .

BCD kullanan satıcılar arasında Burroughs , Bull , CDC , IBM , General Electric (bilgisayar bölümü, 1969'da Honeywell tarafından satın alındı ), NCR , Siemens ve Sperry - UNIVAC vardı .

IBM , 1964 yılında System/360 serisinin tanıtımıyla BCDIC'ye dayalı 8-bit Genişletilmiş İkili Kodlu Ondalık Değişim Kodunu (EBCDIC) duyurdu .

Özel karakterler

RecordMark veya Kayıt işareti (‡ olarak temsil) karakteri bir sonunu işaretlemek için kullanılan bir karakter rekor . Bu karakterin BCD kodu , bazı BCD türevlerinde 32 8'dir . En yakın Unicode eşdeğerdir U + 29E7 TERMODİNAMİK , ama böylece birçok yazı bulunmaz U + 2021 ÇİFT DAGGER sıklıkla yerine kullanılır. İşlevsel olarak bu, EBCDIC IRS karakterine (ASCII RS ), X'1E' karşılık gelir.

Groupmark veya Grup işareti karakteri (olarak temsil IBM 1401 Grup Markası.GIF) ilgili alanlarda bir grup başlangıcını veya bitiş göstermek için kullanılan bir karakterdir. Bu karakterin BCD kodu , bazı BCD türevlerinde 77 8'dir . Grup işareti, 2015 yılında Unicode standardizasyonu için önerildi ve U+2BD2 GRUP MARKASI değerine atandı . İşlevsel olarak bu, EBCDIC IGS karakterine (ASCII GS ), X'1D'ye karşılık gelir . Bu konumda artık Unicode 10.0'dadır, ancak yalnızca Symbola ve Unifont yazı tipleri bunu destekler.

Buna karşılık Wordmark bir BCD karakteri değildir . Bunun yerine, IBM 1401 gibi bazı değişken sözcük uzunluklu bilgisayarlarda bir sözcüğün sonunu işaretlemek için kullanılan bir bayrak bitidir .

BCD kod varyasyonları

Altı bitlik BCD kodunun birçok farklı versiyonu vardır. Üç ana fark kategorisi vardır:

  1. Bölge zımbalarından yüksek dereceli bitlere eşleme. Tüm kodlar, bölge zımbalarını 00 bit modeline çevirmez, ancak bazıları bölge zımbalarını alfabetik sırayı koruyarak 12-11-0 sırayla kodlarken, diğerleri 0-11-12 sırasını kullanır ve kısmen tersine çevrilmiş bir alfabe ile sonuçlanır.
  2. 0 rakamının işlenmesi. Delikli formdan yapılan basit çeviri, boşluğu 1-9 rakamlarından önce yerleştirecek ve 0'ı tamamen başka bir yere kodlayacaktır. Tüm kodların, 0 rakamını tamamen sıfır ikili koda çeviren (ve boşluğu başka bir yere taşıyan) veya ona ikili kod 001010 (ondalık 10) veren ve başka bir yerde 8+2 zımbasını kullanan bazı özel durum işlemeleri vardır.
  3. Özel karakterlerin atanması. Temel alfanümerik kümenin ötesindeki kodlara atanan karakterler, tek bir bilgisayar modelinde bile çok çeşitliydi.

"İspanyolca konuşan ülkelerde", orijinal sistemde "Ñ" karakteri yoktu, bu nedenle çoğu üretici tarafından "@" seçildi: Bull, NCR ve Control Data, ancak veritabanlarını 7 bit ile birleştirirken bir tutarsızlık vardı. ASCII kodu, çünkü bu kodlama sisteminde "/" karakteri seçildi ve aynı karakter için iki farklı kod elde edildi.

BCD kodları örnekleri

Aşağıdaki çizelgeler, BCD karakterlerinin onaltılı (taban-16) gösterimdeki sayısal değerlerini gösterir , çünkü bu, 4 bitlik ikili kodlanmış ondalık sayının yapısını ve artı iki ekstra biti en açık şekilde yansıtır. Örneğin, 3x satırı ve x1 sütunundaki 'A' kodu onaltılık 31 veya ikili '11 0001'dir.

48 karakterlik BCD kodu

BCDIC'nin ilk sürümlerinde 48 karakter vardı, çünkü bunlar kart delme kalıplarına ve yazıcıların karakter setlerine dayanıyordu ve bunların hiçbiri iki karakterin gücüne sahip olmayı teşvik etmiyordu.

IBM 48 karakterli BCDIC kodu
x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
0x Uzay 1 2 3 4 5 6 7 8 9 0 # @
1x / S T sen V W x Y Z , %
2 kere - J K L m n Ö P Q r $ *
3x & A B C NS E F G H ben .

Bu, 40 karakterlik bir delikli kart koduna dayanıyordu; orijinal 37 (10 basamak, 26 harf ve boş) artı 1932 civarında eklenen ticari açıdan önemli üç karakter: kredi bakiyelerini ve tireli adları yazdırmak için kullanılan tire-eksi , birçok ad ve adreste de kullanılan ve işareti ( Procter & Gamble , Mr. . & Mrs. Smith) ve çekleri yazdırırken kullanılmayan alanları üst baskı için kullanılan yıldız işareti .

IBM 704 BCD kodu

IBM 704, BCDIC kodunu, 1'den önce 0 ve Z'den önce A olmak üzere dahili olarak normal bir alfabetik sıralama düzenine izin verecek şekilde yeniden düzenledi . Manyetik bantları okurken ve yazarken bu dahili form ile önceki BCDIC arasında otomatik olarak çeviri yapabilirdi .

Aşağıdaki tablo, IBM 704 bilgisayarı için kod atamalarını gösterir . Atanmamış kod konumları boşluk olarak görünür.

IBM 704 karakter seti
x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
0x 0 1 2 3 4 5 6 7 8 9 # @
1x & A B C NS E F G H ben +0 .
2 kere - J K L m n Ö P Q r -0 $ *
3x Uzay / S T sen V W x Y Z , %

(+0 ve -0 12 veya 11. satırlarda fazla delikli bir işaretle 0 rakamının delikli kart kuralına karşılık gelen nadiren kullanılan karakterlerdi.)

Aşağıdaki tablo, IBM 704 bilgisayarıyla başlayan ve 7094 aracılığıyla kullanılan 716 tipi yazıcı için kod atamalarını göstermektedir . 704 arabirimi, bu yazıcıya bir seferde iki sözcük (72 bit) olmak üzere sanal delikli kart satırları gönderdi, bu nedenle eşleme 6 bitlik BCD karakterlerinden yazılım tarafından yapılmıştır ve yazıcıda yerleşik değildir.

IBM 716 yazıcı karakter seti G
Bölge
yumruk
haneli yumruk
1 2 3 4 5 6 7 8 9 8+3 8+4
Hiçbiri * 1 2 3 4 5 6 7 8 9 + -
12 + A B C NS E F G H ben .
11 - J K L m n Ö P Q r $ *
0 0 / S T sen V W x Y Z , %

Bu, 45 karakterlik bir repertuardır (boş sayılmaz, yazıcı tarafından özel olarak işlenir), karakterler +olarak -ve *çoğaltılır.

Fortran karakter seti

Bazı varyasyonlar vardı; IBM 704 Fortran'ın farklı bir özel karakter kümesi vardı (yalnızca yinelenen eksi işareti korunur).

IBM 716 yazıcı Fortran karakter seti
Bölge
yumruk
haneli yumruk
1 2 3 4 5 6 7 8 9 8+3 8+4
Hiçbiri * 1 2 3 4 5 6 7 8 9 = -
12 + A B C NS E F G H ben . )
11 - J K L m n Ö P Q r $ *
0 0 / S T sen V W x Y Z , (

IBM 709 , 7090 ve 7094 halefleri için benzer bir kod kullanıldı , ancak bazı özel karakterler yeniden atandı:

IBM 7090/7094 karakter seti
x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
0x 0 1 2 3 4 5 6 7 8 9 = "
1x & A B C NS E F G H ben +0 . )
2 kere - J K L m n Ö P Q r -0 $ *
3x Uzay / S T sen V W x Y Z ± , (

IBM 1401 BCD kodu

Kullanım IBM 1401 boşluğu için tamamen sıfır kod kullanılır ve bu dokümantasyon amacıyla, mümkün olan tüm değerleri için karakter formları tanımlanmış olan kod 10. sayıyı sıfır hareket, ancak 48 63 boş olmayan karakter basılabilir edildi ve pratikte diğer kod değerlerinin (aşağıdaki tabloda gölgeli) nasıl gösterildiği konusunda önemli farklılıklar vardı. Diğer karakterler bile, IBM 1403 yazıcısı için mevcut farklı baskı zincirleri arasında değişiklik gösteriyordu .

x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
0x Uzay 1 2 3 4 5 6 7 8 9 0 # @ : >
1x ¢ / S T sen V W x Y Z , % = ' "
2 kere - J K L m n Ö P Q r ! $ * ) ; Δ
3x & A B C NS E F G H ben ? . ( <

GBCD kodu

Aşağıda, BCD'nin bir çeşidi olan GE/Honeywell'in GBCD kodunun tablosu yer almaktadır.

x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
0x 0 1 2 3 4 5 6 7 8 9 [ # @ : > ?
1x Uzay A B C NS E F G H ben & . ] ( < \
2 kere ^ J K L m n Ö P Q r - $ * ) ; '
3x + / S T sen V W x Y Z _ , % = " !

Burroughs B5500 BCD kodu

Aşağıdaki tablo , bazen BIC (Burroughs Değişim Kodu) olarak adlandırılan Burroughs B5500 bilgisayarı için kod atamalarını göstermektedir .

x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
0x 0 1 2 3 4 5 6 7 8 9 # @ ? : >
1x + A B C NS E F G H ben . [ & ( <
2 kere × J K L m n Ö P Q r $ * - ) ;
3x Uzay / S T sen V W x Y Z , % = ] "

Kod sayfası 353

BCDIC-A Kod sayfası, CP353 olarak da bilinen Kod sayfası 353 olarak atanmıştır . Bu kod sayfasındaki bazı karakterler Unicode'da değil. [Bu tabloda iki # karakterin varlığı ancak + karakterinin olmaması yanlış görünüyor.]

x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
0x Uzay 1 2 3 4 5 6 7 8 9 0 # @ : >
1x / S T sen V W x Y Z , % y \
2 kere - J K L m n Ö P Q r ! # * ] ; Δ
3x & A B C NS E F G H ben ? . [ <

0x1A'da, çift hançerle benzerliği nedeniyle ayrı olarak önerilmeyen kayıt işaretidir. 0x3F'de grup işaretidir.

PTTC/BCD kod sayfaları

PTTC/BCD'nin 5 seçeneği vardı. Beş kod sayfası vardı. Aşağıda gösterilmiştir. PTTC/BCD Standart Seçeneği, Kod sayfası 355 veya CP355 olarak atanmıştır .

x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
0x Uzay 1 2 3 4 5 6 7 8 9 0 #
1x @ / S T sen V W x Y Z , y
2 kere - J K L m n Ö P Q r < $
3x & A B C NS E F G H ben ) .

PTTC/BCD H Seçeneği, Kod sayfası 357 veya CP357 olarak atanmıştır .

x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
0x Uzay 1 2 3 4 5 6 7 8 9 0 =
1x ' / S T sen V W x Y Z ,
2 kere - J K L m n Ö P Q r ! $
3x + A B C NS E F G H ben ? .

PTTC/BCD Yazışma Seçeneği, Kod sayfası 358 veya CP358 olarak atanmıştır .

x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
0x Uzay 1 2 3 4 5 6 7 8 9 0 '
1x ! / S T sen V W x Y Z ,
2 kere - J K L m n Ö P Q r < ;
3x = A B C NS E F G H ben > .

PTTC/BCD Tek Kutu Seçeneği, Kod sayfası 359 veya CP359 olarak atanmıştır .

x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
0x Uzay 1 2 3 4 5 6 7 8 9 0 #
1x @ / S T sen V W x Y Z ,
2 kere - J K L m n Ö P Q r $
3x & A B C NS E F G H ben .

PTTC/BCD Duocase Seçeneği, Kod sayfası 360 veya CP360 olarak atanmıştır .

x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
0x Uzay 1 2 3 4 5 6 7 8 9 0 #
1x @ / S T sen V W x Y Z ,
2 kere - J K L m n Ö P Q r $
3x & A B C NS E F G H ben .

Ayrıca bakınız

Notlar

Referanslar

daha fazla okuma