c语言十进制字符的特征,用c语言字符串写十进制转换二进制原理

呵呵,没有意义的事情,因为在内存里他都是二进制,所谓十进制二进制十六进制,只是显示的问题,也就是字符串的问题,要显示问题很好转换

如果要用堆栈,那就比较麻烦,也没有必要

///

/// 堆栈

///

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();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值