(C语言)如何将一个数字的二进制形式输出出来 您所在的位置:网站首页 22125的二进制 (C语言)如何将一个数字的二进制形式输出出来

(C语言)如何将一个数字的二进制形式输出出来

2023-08-22 05:58| 来源: 网络整理| 查看: 265

一. 我们知道由十进制转二进制的算法,因此可以直接计算出其二进制数

        例如:对3求其二进制

int main() { int n = 3; int arr[33] = { 0 };//int 型有32个字节 int i = 0; while (n > 0) { arr[i] = n % 2; ++i; n /= 2; } int k = 0; for (k = i-1; k >= 0; k--) //逆序输出 { printf("%d", arr[k]); } return 0; }

二. 因为数字在计算机中就是以二进制的形式存储的,那我们也可以通过  位运算符  来表示出一个数的二进制。

        用&(按位与)运算符,其运算原理是对其两个操作数的计算机内存储的二进制形式(补码)的对应位进行按位与,如果1&1结果是1,其他结果都是0。

例如 3&5:

int a = 3; //a: 00000000000000000000000000000011 int b = 5; //b: 00000000000000000000000000000101 int c = a & b; //c: 00000000000000000000000000000001

         因此,可以让一个数n&1,然后得到n的二进制的第一位的值(如果结果是1,那n的二进制的第一位也是1,如果是0,那第一位是0),然后让n右移一位n>>1,然后找其第二位。。。。。。然后一直遍历到第32位。

int main() { int n = 5; int i = 0; int arr[33] = { 0 };//int 是有32位的 //从第一位开始依次取n对应二进制的每一位 for (i = 1; i > 1; } //printf("%d\n", i); int k = 0; //逆序输出 for (k = i-1; k >= 1; k--) { printf("%d", arr[k]); } printf("\n"); return 0; }

运算结果:

        但是用数组存,有点麻烦,所以我又改进了一下

int main() { int n = 5;//0000000101 int i = 0; int k = 1 > 31)); n


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有