将一个int型的整数转换为以32位显示的字符串!
求助:
比如一个int型整数12,怎样将其以32位的形式表示出来,变为“0000 0000 0000 0000 0000 0000 0000 1100”、存入一个字符串中。
ps:那32位之间也可以没有空格.
[解决办法]
十进制转换为二进制代码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 }
[解决办法]
#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';
}