将一个字符(char)或者一个整形(int)的二进制形式输出

Posted nanqiang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将一个字符(char)或者一个整形(int)的二进制形式输出相关的知识,希望对你有一定的参考价值。

要输出一个数的二进制形式使用位操作  >> 和 &

void putBinary(int number)//将一个int整形数字的二进制形式正序,倒序输出
{
    int value;
    int i;
    for (i = 31; i >= 0;i--)//正序
    {
        int value = number >> i & 1;
        printf("%d", value);
    }
    printf("\n");

    for (i = 0; i <= 31; i++)//倒序
    {
        int value = number >> i & 1;
        printf("%d", value);
    }
    printf("\n");
}

void putBinary(char c) //将一个字符的二进制形式正序,倒序输出
{
    int value;
    int i;
    
    for (i = 7; i >= 0; i--)//正序
    {
        value = (int)c >> i & 1;
        printf("%d", value);
    }
    printf("\n");

    for (i = 0; i <= 7; i++)//倒序
    {
        value = (int)c >> i & 1;
        printf("%d", value);
    }
    printf("\n");
    
}
int main(void)
{
    printf("‘0‘ = %d, A = %d, a = %d\n",0,A,a);
    printf("‘5‘ - ‘0‘ = %d\n",(int)(5 - 0));
    
    putBinary(0);
    putBinary(65);
    putBinary(97);
    putBinary(0);
    putBinary(A);
    putBinary(a);

    while (1);
    return 0;
}

 一些其他方法

void f(int n)
{
    if (n) 
        f(n / 2);
    else 
        return;
    printf("%d", n % 2);
}
void f(int input)
{
    int i = 0;
    int arr[32] = { 0 };
    for (i = 0; i < 32; i++)
    {
        arr[i] = input % 2;//除2取余法放入数组
        input = input / 2;
    }
    for (i = 31; i >= 0; i--)
    {
        printf("%d", arr[i]);//余数倒序输出
    }
}

 

以上是关于将一个字符(char)或者一个整形(int)的二进制形式输出的主要内容,如果未能解决你的问题,请参考以下文章

C语言中怎么将一个整形数组转化为一个float或者int类型数字比如 int a[5]=1,2,

高手请进!如何把整形数据转换为字符串(C语言)?

c语言如何将字符串转为二进制的整型然后保存到整型数组里?

字符串转整形 整形转字符串 等一系列转换

如何用c语言把整形转换成字符型

python学习-day03:整形字符串常用方法: