将一个字符(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]);//余数倒序输出
    }
}

原文地址:https://www.cnblogs.com/nanqiang/p/9988293.html

时间: 2024-10-03 14:14:44

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

char类型变量二进制形式输出

C语言char类型(1字节)以二进制形式输出: #include<stdio.h> void chrtobit(char chr)/* chr是要以二进制形式输出的char值*/{ char tchr=chr; int i; for(i=7;i>=0;i--) { char tmpc=tchr; tmpc=tchr&(1<<i); printf("%d",tmpc>>i); } printf("\n");}

int类型变量以二进制形式输出

C语言int类型(4字节)以二进制形式输出: #include<stdio.h> void intobit(int num)/*num是要以二进制形式输出的int值将二进制数据逐个置1,在右移,依次实现逐个输出*/{ int tnum=num; int i; for(i=31;i>=0;i--) { int tmpa=tnum; tmpa=tnum&(1<<i); ((i+1)%8==0&&i!=31)?printf(" %d",t

实现一个函数int my_atoi(char s[]),可以将一个字符串转换为对应的整数

比如:输入字符串"1234",返回数字1234.       输入字符串"+1234",返回数字1234.       输入字符串"-1234",返回数字-1234.                      #include <stdio.h> int my_atoi(char s[10]) {   int flag=1;  //代表符号位的正负号   int ret=0;   //用于存储取出来的数   char *p=s;   

Java语言中的字符char可以存储一个中文汉字吗为什么呢

Java语言中的字符char可以存储一个中文汉字吗?为什么呢? · 可以.因为Java语言采用的是Unicode编码.Unicode编码中的每个字符占用两个字节.Char储存的是一个字符(两个字节),中文也是占的两个字节 · 所以,Java中的字符可以存储一个中文汉字 原文地址:https://www.cnblogs.com/lcs-java/p/8486984.html

输入5个学生的名字(英文),使用冒泡排序按从大到小排序。 提示:涉及到字符串数组,一个字符串是一个一维字符数组;一个 字符串数组就是一个二维字符数组。

#include <stdio.h>#include <string.h> /*输入5个学生的名字(英文),使用冒泡排序按从大到小排序.提示:涉及到字符串数组,一个字符串是一个一维字符数组:一个字符串数组就是一个二维字符数组.*/ void main(){ char stuNames[5][100]; char tmp[100]; int i = 0,j = 0; for(i = 0; i < 5; i++) { printf("请输入第%d个学生的名字:"

43.编写一个程序,判断用户输入的字符是否是数字,若是数字,则输出“a numerical character”

//1.学习到字符输入 //2.判断字符 #include<iostream> using namespace std; int main() { char a; cout<<"please input a charcter: "<<endl; cin>>a; if(a>'0'&&a<'9') { cout<<"it's a numerical character!"<&l

C语言 有一个整形数组a,有10个元素,要求输出数组中的全部元素

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">有一个整形数组a,有10个元素,要求输出数组中的全部元素</span> 解题思路:引用数组中各元素的值有3种方法:1.下标法,如a[3];2.通过数组名计算数组元素的地址,找出元素的值 3.用指针变量指向数组元素. //用指针变量指向数组元素 #include <std

java如何把char型数据转换成int型数据(转)

一字符串,String=“2324234535”:把第i个数取出来时是char型的:char temp=String.charAt(i)如何把char型转换成int型?我需要求个尾数之和,如:123的各位数之和为6. 每个字符取出来,得到char型的1,2,3,4,5:但是求和得到的结果是ASCII码值 处理办法: (1)把char转成字符串, Integer.parseInt(""+'1')或String a = "12345";int d = Integer.p

【C语言】用宏实现一个整形奇偶位交换

//用宏实现一个整形奇偶位交换 //例如6为0000..0110,交换完为0000..1001,即为9 #include <stdio.h> #define EXCHANGE(num) ((num&(0x55555555))<<1)|((num&(0xaaaaaaaa))>>1) //取出奇数位左移,取出偶数位右移,最后相加 int main() { printf("%d\n", EXCHANGE(6)); //9 printf(&q