C++Ip地址十进制转二进制转十进制

您还未登陆,请登录后操作!
IP地址由二进制转化为十进制的具体方法
二进制转十进制
  方法:“按权展开求和”
  例: ( =(1×2^3+0×2^2+1×2^1+1×2^0+0×2^(-1)+1×2^(-2) )10
  =(8+0+2+1+0+0.25)10
  =(11.25)10
  规律:个位上的数字的次数是0,十位上的数字的次数是1,......,依奖递增,而十
  分位的数字的次数是-1,百分位上数字的次数是-2,......,依次递减。
  注意:不是任何一个十进制小数都能转换成有限位的二进制数。
大家还关注十进制转二进制_转换处理下载_第一站(源码中心)
&|&&|&&|&&|&&|&&|&&|&&|&&|&&|&
&&>>&&>>&&>>&&>>&
十进制转二进制
运行环境:&Win9x/NT/2000/XP/2003
(载入中...)
文件大小:&1&K
软件类别:&BAT源码
软件语言:&简体中文
软件属性:&&&&热&&&
授权方式:&免费版
整理时间:&
软件等级:&★★★
软件作者:&佚名
下载次数:&(载入中...)
::软件简介::
警告:运行BAT源码是一种危险的动作,如果你不熟悉,请不要尝试!
@echo off:: 十进制转二进制:: Code by -6 :: 出处:setlocal enabledelayedexpansionset/p scanf=能正确处理的最大数为[],请输入需要转换的十进制数:if not defined scanf exit/bset dec=%scanf%call :d2becho %dec% 的二进制为:%bin%pause&nulexit/b
:d2bset a=1for /l %%i in (1,1,31) do (&&&&&&& set/a t=%scanf%"&"!a!&&&&&&& set/a a*=2&&&&&&& if !t! equ 0 (set bin=0!bin!) else (set bin=1!bin!))if %bin% equ 0 set bin=0 & goto :eof:cut0if %bin:~0,1% equ 0 set bin=%bin:~1%&goto :cut0
&&&&&::↓↓↓绿色第一站本地下载地址↓↓↓::&&&&&
::相关软件::
::本类热门::
没有相关源码
?&?&?&?&?&?&?&?&?&?&
::下载说明::
如果您发现该软件不能下载,请点击【】,谢谢!
本站提供的软件会尽可能测试后再上传,但限于个人能力及系统等问题,无法保证所有软件都没有任何问题,请下载后自行杀毒后再使用。
本站所有资源均是网上搜集或私下交流学习之用,任何涉及商业盈利目的均不得使用,否则产生的一切后果将由您自己承担!本站仅仅提供一个观摩学习的环境,将不对任何资源负法律责任。所有资源请在下载后24小时内删除。
日:&周:&月:&总:十进制转二进制编程思路
请高手指点一二,用Java 和C# 编写这个控制台程序的思路。多谢!
09-09-05 & 发布
import java.math.BigD public class Test {     public static void main(String[] args) {
       Test t = new Test();
       double d = 8;
       String s = t.decimal2BinaryStr(d);
       System.out.println(&十进制数&+d+&转成二进制数为:&+s);
   }     /**
    * 十进制数转二进制数
    * @param d 十进制数
    * @return 十进制数转换成二进制的字符串
    */
   public String decimal2BinaryStr(double d){
       String result = decimal2BinaryStr_Inte(d);
       result += decimal2BinaryStr_Deci(d);
       
   }
   
   /**
    * 十进制整数部分转二进制数
    * @param d 十进制数
    * @return 十进制整数部分转换成二进制的字符串
    */
   public String decimal2BinaryStr_Inte(double d){ //      return Integer.toBinaryString((int)d);
       /*
        * 本来利用上面的Integer.toBinaryString(int)就可以得到整数部分的二进制结果,
        * 但为了展示十进制转二进制的算法,现选择以下程序来进行转换
        */
       String result = &&;
       long inte = (long)d;
       int index = 0;
       while(true){
           result += inte%2;
           inte = inte/2;
           index++;
           if(index%4 == 0){
               result+=& &;
           }
           if(inte==0){
               while(index%4!=0){
                   result+=&0&;
                   index++;
               }
               
           }
       }
       char[] c = result.toCharArray();
       char[] cc = new char[c.length];          for(int i=c. i&0; i--){
           cc[cc.length-i] = c[i-1];
       }
       return new String(cc);
   }
   
   /**
    * 十进制小数部分转二进制
    * @param d 十进制数
    * @return 十进制小数部分转换成二进制小数的字符串
    */
   public String decimal2BinaryStr_Deci(double d){
       return decimal2BinaryStr_Deci(d, 0);
   }
   
   /**
    * 十进制小数部分转二进制
    * @param d 十进制数
    * @param scale 小数部分精确的位数
    * @return 十进制小数部分转换成二进制小数的字符串
    */
   public String decimal2BinaryStr_Deci(double d, int scale){
       double deci = sub(d,(long)d);
       if(deci==0){
           return &&;
       }
        //为了防止程序因所转换的数据转换后的结果是一个无限循环的二进制小数,因此给其一个默认的精确度
       if(scale==0){
           scale = (String.valueOf(deci).length()-2)*4;
       }
       int index = 0;
       StringBuilder inteStr = new StringBuilder();
       double tempD = 0.d;
       while(true){
           if(deci==0 || index==scale){
               while(index%4!=0){
                   inteStr.append(&0&);
                   index++;
               }
               
           }
           if(index==0){
               inteStr.append(&.&);              }
           tempD = deci*2;
           inteStr.append((int)tempD);
           deci = sub(tempD ,(int)tempD);
           index++;
           if(index%4 == 0){
               inteStr.append(& &);
           }          }
       return inteStr.toString();
   }
   
   
   /**
    * 提供精确的减法运算。
    * @param v1 被减数
    * @param v2 减数
    * @return 两个参数的差
    */
   public static double sub(double v1, double v2) {
       BigDecimal b1 = new BigDecimal(Double.toString(v1));
       BigDecimal b2 = new BigDecimal(Double.toString(v2));
       return b1.subtract(b2).doubleValue();
   } }
请登录后再发表评论!扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
点分十进制ip地址转换为二进制ip地址
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口

我要回帖

更多关于 二进制转十进制 的文章

 

随机推荐