İkili biçimde yazdırmak için printf bir dönüştürücü var mı? | Netgez.com
SORU
21 EYLÜL 2008, Pazar


İkili biçimde yazdırmak için printf bir dönüştürücü var mı?

Baskı ile onaltılık veya sekizlik bir sayı olarak, basit bir beşgen kullanmaktır edebilirim. İkili olarak baskı veya keyfi temel biçim bir etiket var mı?

Gcc kullanıyorum.

printf("%d %x %o\n", 10, 10, 10); //prints "10 A 12\n"
print("%b\n", 10); // prints "%b\n"

CEVAP
22 EYLÜL 2008, PAZARTESİ


Burada teknikleri istediğini yapmak göstermek için hızlı bir hack.

#include <stdio.h>      /* printf */
#include <string.h>     /* strcat */
#include <stdlib.h>     /* strtol */

const char *byte_to_binary(int x)
{
    static char b[9];
    b[0] = '\0';

    int z;
    for (z = 128; z > 0; z >>= 1)
    {
        strcat(b, ((x & z) == z) ? "1" : "0");
    }

    return b;
}

int main(void)
{
    {
        /* binary string to int */

        char *tmp;
        char *b = "0101";

        printf("%d\n", strtol(b, &tmp, 2));
    }

    {
        /* byte to binary string */

        printf("%s\n", byte_to_binary(5));
    }

    return 0;
}

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ★ByScrapi★ Designs

    ★ByScrapiâ

    27 AÄžUSTOS 2013
  • chrmoe

    chrmoe

    7 Kasım 2006
  • GoogleTechTalks

    GoogleTechTa

    15 AÄžUSTOS 2007