Introduction
Coddy'nin Matematiksel Bilmeceler kursunda ders 18 / 20.
Bir ikili sayı, 2 tabanlı sayı sistemi veya ikili sayı sistemi ile ifade edilen bir sayıdır; bu, genellikle "0" (sıfır) ve "1" (bir) olmak üzere yalnızca iki sembol kullanan bir matematiksel ifade yöntemidir. [Özgür ansiklopedi Vikipedi'den]
Şu gösterimler: 110=12, 210=102, 310=112, 410=1002; onluk sayı sistemindeki (10 tabanlı sayı sistemi) 1, 2, 3 ve 4 sayılarının, ikili sayı sistemindeki 1, 10, 11 ve 100 sayılarına eşit olduğu anlamına gelir.
İkili sistemde saymak, diğer herhangi bir sayı sisteminde saymaya benzer. Tek bir basamakla başlayarak, sayma işlemi her bir sembol üzerinden artan sırada devam eder.
10 tabanlı bir tam sayıyı 2 tabanlı (ikili) karşılığına dönüştürmek için sayı ikiye bölünür. Kalan, en düşük anlamlı bittir (en sağdaki bit). Bölüm tekrar ikiye bölünür; kalanı bir sonraki en düşük anlamlı bit olur. Bu işlem, bir bölümüne ulaşılana kadar tekrarlanır. Kalanların dizisi (son bölüm olan bir dahil), ikili değeri oluşturur; çünkü ikiye bölerken her kalan ya sıfır ya da bir olmalıdır. Örneğin, 510 sayısı 1012 olarak ifade edilir, çünkü:
beşin ikiye bölümü 2'dir ve kalan birdir: 5:2 = 2(1). Yani en düşük anlamlı bit birdir. Sonra, 2:2=1(0). Yani bir sonraki en düşük anlamlı bit sıfırdır ve bir sonraki birdir.
Görev
KolayBir taban-10 tamsayı alan ve bunun ikili (binary) sayı karşılığını dize (string) formatında döndüren bir calcBinary fonksiyonu yazın.
Bunu yerleşik fonksiyonlar kullanmadan yapmaya çalışın
Kendin dene
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include "solution.h"
int main() {
int n;
if (scanf("%d", &n) != 1) n = 0;
char* r = calcBinary(n);
printf("%s\n", r);
return 0;
}