十进制/十六进制/二进制字串转化
welcome to http://bccv.songstech.com/
//十进制->二进制 CString DecimalToBinary(CString strDecimal) { int nDecimal = atoi(strDecimal.GetBuffer(0)); int nYushu; //ÓàÊý int nShang; //ÉÌ CString strBinary = ""; char buff[2]; CString str = ""; BOOL bContinue = TRUE; while(bContinue) { nYushu = nDecimal%2; nShang = nDecimal/2; sprintf(buff,"%d",nYushu); str = strBinary; strBinary.Format("%s%s",buff,str); nDecimal = nShang; if(nShang==0) bContinue = FALSE; } return strBinary; } //十六进制到二进制 CString HexToBinary(CString strHex) { int nLenth = strHex.GetLength(); char* Hex = new char[nLenth]; Hex = strHex.GetBuffer(0); CString strBinary = ""; for(int i=0;i<nLenth;i++) { //ת»»Ò»Î»Ê®Áù½øÖÆÊýΪʮ½øÖÆ char h = Hex[nLenth-1-i]; int j = BtoH(h); CString str; str.Format("%d",j); //ת»»Ê®½øÖÆÎª4Ϊ¶þ½øÖÆ str = DecimalToBinary(str); strBinary += str; } return strBinary; } //用到的一个函数 unsigned char BtoH(char ch) { //0-9 if (ch >= '0' && ch <= '9') return (ch - '0'); //9-15 if (ch >= 'A' && ch <= 'F') return (ch - 'A' + 0xA); //9-15 if (ch >= 'a' && ch <= 'f') return (ch - 'a' + 0xA); return(255); }
注:转载文章需注明来源:VCer.net 文章地址:http://vcer.net/1026.html
如果你觉得VCer.net不错,而且你愿意为VCer.net捐赠一元钱,那么点击后面的捐赠按钮吧:)
A B C D E
MS 没有提供这种基本的 API ?
carlward 于 2008-10-10 00:44:27.0 编辑 [回复该贴]
Boyben 于 2004-04-15 16:25:56.0 编辑 [回复该贴]