首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

将一个int型的整数转换为以32位显示的字符串!解决方案

2012-02-22 
将一个int型的整数转换为以32位显示的字符串!求助:比如一个int型整数12,怎样将其以32位的形式表示出来,变

将一个int型的整数转换为以32位显示的字符串!
求助:

比如一个int型整数12,怎样将其以32位的形式表示出来,变为“0000 0000 0000 0000 0000 0000 0000 1100”、存入一个字符串中。

ps:那32位之间也可以没有空格.

[解决办法]

C/C++ code
十进制转换为二进制代码01    #include<iostream.h> 02      03    char *ok(int n,char *b) 04    { 05        static int LEN=8*sizeof(int); 06        for(int i=LEN-1;i>=0;i--,n>>=1) 07            b[i]=(01&n)+'0'; 08        b[LEN]='\0'; 09        return b; 10    } 11      12    void main() 13    { 14        int v[]={0,1,2,3,4,5,6,7,8,9}; 15        char b[8*sizeof(int)+1]; 16        int i=-1; 17        while(++i<10) 18            cout<<ok(v[i],b)<<endl; 19    }
[解决办法]
C/C++ code
#include "stdafx.h"#include <Windows.h>#include <tchar.h>#define N 32void Dec2Bin(int nVal, LPTSTR lpszText){    for(int i = N - 1; i >= 0; --i)    {        _stprintf(lpszText++, _T("%d"), (nVal >> i) & 0x1);    }}int main(int argc, char* argv[]){    TCHAR buf[N] = {0};    Dec2Bin(12, buf);    _tprintf(_T("%s\n"), buf);    return 0;}
[解决办法]
#include "stdafx.h"
#include <iostream>
using namespace std;

//实现十进制整数转换为二进制
void Convert(int n,char *buff);

int _tmain(int argc, _TCHAR* argv[])
{
int inData;
char *pConvertData = static_cast<char *>(malloc(8*sizeof(int)+1));
cout << "Input an integer:";
cin >> inData;
Convert(inData,pConvertData);
cout << "The binary is:" << pConvertData << endl;
return 0;
}

void Convert(int n,char *buff)
{
int len = 8*sizeof(int);
for(int i = len-1;i >= 0;--i)
{
buff[i] = (01&n) + '0';
n >>= 1;
}
buff[len] = '\0';
}

热点排行