将一个字符(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)的二进制形式输出的主要内容,如果未能解决你的问题,请参考以下文章