C++里怎么把0001变成1000

我想请问一下,C++里怎么把0001变成1000
最新回答
酷炸小仙女

2024-11-05 01:24:11

你是不是想把一个十进制的数转换为它的二进制形式?你用的方法是,将这个数循环除以2,然后每次取余数。但是这样取出来的余数和该数的二进制形式,刚好相反。所以你想知道有什么什么办法把这个相反的二进制形式转成正确的二进制形式。

有。用字符数组保存每次取到的余数,然后,把这个字符数组反向输出便可以了。

于是本来是0001,反向输出后便是1000。如果你要把这个二进制数保存,那么也是反向赋值。用于保存数据的数组,从0开始,从前往后;与此同时,相反赋值的数组从最后一个有值的元素开始,从后往前。

for(...)

 A[i] = B[end - i]; //end:如果是0001那么end等于3,也就是二进制的位数减一。

下面代码只是输出一个十进制数的二进制形式。并没有提供保存该二进制数据的代码。

只支持正整数。



#include <iostream>
using namespace std;
void main()
{
  int number, index = 0, temp;
  char chr1BinaryNumber[32]; //不带结束符,因为已知整型长度为32位
  cout<<"Please input decimalism number:\n"; //请输入一个十进制数
  cin>>number;
  temp = number;
  cout<<"The binary form of number "<<number<<" is:\n"; //该数的二进制形式为
  while (number)
  {
    chr1BinaryNumber[index] = number%2 + '0';
    number /= 2;
    index ++;
  }
  if (temp)
    while (index-- >= 0)
      cout<<chr1BinaryNumber[index];
  else
    cout<<"0";
}
星雪伊

2024-11-05 04:22:27

定义一个字符数组,收尾交换一下就可以了,那么简单的
青春︶兵荒马乱

2024-11-05 15:57:51

8对2取余不是0000啊吗