呵呵,没有意义的事情,因为在内存里他都是二进制,所谓十进制二进制十六进制,只是显示的问题,也就是字符串的问题,要显示问题很好转换
如果要用堆栈,那就比较麻烦,也没有必要
///
/// 堆栈
///
private stack intstack = new stack( 5 );
public void dtob( int inum )
{
intstack.push( inum % 2 ); // 余数入栈
int d = inum / 2;
if ( d != 0 )
dtob( d ); // 求下一个二进制位
return;
}
//下面是调用程序
public static void main()
{
intstack.clear();
dtob( 11 );
stringbuilder s = new stringbuilder();
while ( intstack.count != 0 )
s.insert( 0, intstack.pop() ); // 从堆栈中取出所有的二进制位
messagebox.show( "二进制数:" + s.tostring() );
}
//要转换下面的方法更简单,而且效率更高
public string dtob1( int inum )
{
int len = sizeof( int ) * 8;
stringbuilder s = new stringbuilder();
int exmple = 1 << len - 1;
int tmp = inum;
for ( int i = 0; i < len; i++ )
{
if ( ( tmp & exmple ) == 0 )
s.append( "0" );
else
s.append( "1" );
tmp <<= 1;
}
return s.tostring();
}