精华内容
下载资源
问答
  • 数学方法进制转换之十进制二进制若想要实现十进制转其他进制,只需要将%8,/8替换为相应数,例如十进制转十六进制,则改为%16,/16。#include #include using namespace std; stack<int> Conversions(int num){ ...

    若想要实现十进制转其他进制,只需要将%8,/8替换为相应的数,例如十进制转十六进制,则改为%16,/16。

    #include<stdio.h>
    #include<stack>
    using namespace std;
    stack<int> Conversions(int num){
        if(num<=0){
            printf("num is error\n");
        }
        stack<int>stk;
        //8--->10
        //10-->12
        while(num){
            stk.push(num%8);
            num/=8;
        }
    
    
        return stk;
    }
    int main(){
        int num;
        while(cin>>num){
    
        stack<int>stk=Conversions(num);
        while(!stk.empty()){
    
            printf("%d",stk.top());
            stk.pop();
        }
            printf("\n");
        }
        return 0;
    }
    

    这里之所以使用栈stack,是因为利用了栈的先进后出的原理。
    栈的原理图
    比如十进制的8,转化为八进制为 10。
    这里先入栈的是0,后入栈的是1。
    存储时是01,栈顶是1,所以先打印1后打印0,变为10。

    展开全文
  • 二进制转化为十进制Java实现

    千次阅读 2019-04-26 10:35:31
    二进制转化为十进制 ①按权展开方法Java实现 /* * 按权展开法 */ public static double BinToTen1(String binary) { //查找改二进制是否存在小数点 int index = binary.indexOf('.'); //转化成的十进制 ...
    • 二进制转化为十进制
      ①按权展开方法Java实现
    /*
    	 * 按权展开法
    	 */
    	public static double BinToTen1(String binary) {
    		//查找该二进制是否存在小数点
    		int index = binary.indexOf('.');
    		//转化成的十进制
    		double ten = 0;
    		//整数部分
    		double integer = 0;
    		//小数部分
    		double decimal = 0;
    		//index等于-1,说明没有小数部分
    		if(index == -1) {
    			for(int i = 0; i < binary.length(); i++) {
    				//48为字符'0'对应的ASCII值;
    				//ten += (binary.charAt(i) - 48) * Math.pow(2, -(i-(binary.length() - 1)));
    				//或者可以将字符转化为字符串,再由字符串转化为数字
    				ten += Integer.parseInt(String.valueOf(binary.charAt(i))) * Math.pow(2, -(i-(binary.length() - 1)));
    			}
    		} else {
    			//计算整数部分
    			for(int i = 0; i < index; i++) {
    				integer += Integer.parseInt(String.valueOf(binary.charAt(i))) * Math.pow(2, -(i-(index - 1)));
    			}
    			//计算小数部分
    			for(int j = index + 1; j < binary.length(); j++) {
    				decimal += Integer.parseInt(String.valueOf(binary.charAt(j))) * Math.pow(2, (index - j));
    			}
    			ten = integer + decimal;
    		}
    		return ten;
    		
    	}
    

    测试

    public static void main(String[] args) {
    		
    		double a = BinToTen1("11");
    		System.out.println(a);
    		double b = BinToTen1("0.11");
    		System.out.println(b);
    		double c = BinToTen1("11.111");
    		System.out.println(c);
    	}
    

    在这里插入图片描述
    ②基位连乘、连除法Java实现

    /*
    	 * 基位连乘、连除法
    	 */
    	public static double BinToTen2(String binary) {
    		//查找该二进制是否存在小数点
    		int index = binary.indexOf('.');
    		//转化成的十进制
    		double ten = 0;
    		//整数部分
    		double integer = 0;
    		//小数部分
    		double decimal = 0;
    		
    		double temp = 0;
    		//index等于-1,说明没有小数部分
    		if(index == -1) {
    			if(binary.length() == 0) {
    				return ten;
    			}else if(binary.length() == 1) {
    				ten = Integer.parseInt(String.valueOf(binary.charAt(0)));
    				return ten;
    			} else {
    				ten = Integer.parseInt(String.valueOf(binary.charAt(0)));
    				for(int i = 1; i < binary.length(); i++) {
    					//最高位乘以2加下一位,直到加到最低为位置
    					ten = ten * 2 + Integer.parseInt(String.valueOf(binary.charAt(i)));
    				}
    			}
    		} else {
    			if(index > 0) {
    				//计算整数部分
    				integer = Integer.parseInt(String.valueOf(binary.charAt(0)));
    				for(int i = 1; i < index; i++) {
    					//最高位乘以2加下一位,直到加到最低为位置
    					integer = integer * 2 + Integer.parseInt(String.valueOf(binary.charAt(i)));
    				}
    			}
    			if(index != binary.length() - 1) {
    				decimal = Integer.parseInt(String.valueOf(binary.charAt(binary.length() - 1)));
    				//计算小数部分
    				for(int j = binary.length() - 2; j > index; j--) {
    					decimal = decimal/2 + Integer.parseInt(String.valueOf(binary.charAt(j)));
    				}
    			}
    			ten = integer + decimal/2;
    		}
    		return ten;
    		
    	}
    

    测试

    public static void main(String[] args) {
    		
    		double a = BinToTen2("1.011");
    		System.out.println(a);
    		double b = BinToTen2("0.011");
    		System.out.println(b);
    		double c = BinToTen2(".011");
    		System.out.println(c);
    		double d = BinToTen2("11.");
    		System.out.println(d);
    	}
    

    在这里插入图片描述

    展开全文
  • 十进制转化二进制

    2019-11-24 21:39:15
    我的思路是先将十进制的数字转化为二进制,然后存进字符串中,在这里我用StringBuffer类,因为如果要逐个修改字符串中的字符的话String类是做不到的.然后用到String Buffer中的append方法将每一个二进制位添加到字符串...

    最近我在刷一道题是碰到这样一道题,题目如下
    汉明距离

    我的思路是先将十进制的数字转化为二进制,然后存进字符串中,在这里我用StringBuffer类,因为如果要逐个修改字符串中的字符的话String类是做不到的.然后用到String Buffer中的append方法将每一个二进制位添加到字符串中代码如下

    	StringBuffer sf1 = new StringBuffer();
            do{
                sf1.append((char)y % 2);   
                y = y / 2;
            }while(y > 0);
    

    解体过程中的出现的问题很多,比如while循环中的判断—到底到在哪里截至,这个十分重要.还有do while和while循环的区别以及其作用 (十分重要) 因为我在这个坑中倒了很多次…扎心

    最后公布一下我的所有代码 希望对你有帮助

    class Solution {
    	StringBuffer sf1 = new StringBuffer();
        StringBuffer sf2 = new StringBuffer();
        public int hammingDistance(int x, int y) {
            
    
            do{
                sf2.append((char)y % 2);
                y = y / 2;
            }while(y > 0);
            do{
                sf1.append((char)x % 2);
                x = x / 2;
            }while(x > 0);
            
            int count = 0;   //记录不同的二进制位
            
            if(sf1.length() > sf2.length()){              //将二进制位数少的那个数 用0补全
                for(int i = sf2.length(); sf1.length() != sf2.length(); i++){
                    sf2.append('0');
                }
                for(int i = 0; i < sf1.length(); i++){
                    if(sf1.charAt(i) != sf2.charAt(i)){
                        count++;
                    }
                }
            }
            else{
                for(int i = sf1.length(); sf1.length() != sf2.length(); i++){
                    sf1.append('0');
                }
                for(int i = 0; i < sf1.length(); i++){
                    if(sf1.charAt(i) != sf2.charAt(i)){
                        count++;
                    }
                }          
            }
            return count;
    
        }
    
    }
    //本来计算完二进制后需要倒置的,因为本题中不做要求,所以简写,当然可以添加,一个for循环就行.
    
    

    说到底还是自己菜,本来挺简单的代码写了很久. 唉…

    上网百度了一下十进制转二进制算法,还挺多这里转载一篇用于学习

    转载链接:https://www.cnblogs.com/vsign/p/7290594.html

    如有问题请与我联系

    Java中实现十进制数转换为二进制

    第一种:除基倒取余法

    这是最符合我们平时的数学逻辑思维的,即输入一个十进制数n,每次用n除以2,把余数记下来,再用商去除以2...依次循环,直到商为0结束,把余数倒着依次排列,就构成了转换后的二进制数。

    那么,在实际实现中,可以用int的一个数来存储最后的二进制,每次求余后把余数存储在int型数的低位,依次递增。

    复制代码
     1   public void binaryToDecimal(int n){
     2       int t = 0;  //用来记录位数
     3       int bin = 0; //用来记录最后的二进制数
     4       int r = 0;  //用来存储余数
     5       while(n != 0){
     6           r = n % 2;
     7           n = n / 2;
     8           bin += r * Math().pow(10,t);
     9           t++; 
    10      }
    11          System.out.println(bin);
    12  }
    复制代码

     

    但是int型最大只能表示2^31-1 的正数,所以,存储的二进制数位数有限;我们都知道,int在java中的存储范围是32位,则可以使用字符串的拼接(+)来实现,代码如下:

    复制代码
    1  public void binaryToDecimal(int n){
    2      String str = "";
    3      while(n!=0){
    4          str = n%2+str;
    5          n = n/2;
    6      }
    7          System.out.println(str);
    8 }
    复制代码

     

    第二种:利用“移位”操作实现

    我们可以直接利用移位操作对一个十进制数进行移位操作,即:将最高位的数移至最低位(移31位),除过最低位其余位置清零,使用& 操作,可以使用和1相与(&),由于1在内存中除过最低位是1,其余31位都是零,然后把这个数按十进制输出;再移次高位,做相同的操作,直到最后一位 ,代码如下。可以说,这是我到目前为止见到的最简单的实现方式了。

    1 public void binaryToDecimal(int n){
    2      for(int i = 31;i >= 0; i--)
    3          System.out.print(n >>> i & 1);
    4 }

     

    说明:由于计算机中存储的都是数的补码,正数的原码、反码、补码都是相同的;而负数的原码、反码、补码是不一样的,补码=原码取反+1(符号位不变)。所以,负数是按照它的补码输出的。

    >>>为逻辑移位符,向右移n位,高位补0
    >> 算数移位符,也是向右移n位,不同的是:正数高位补0,负数高位补1
    << 移位符,向左移n位,低位补0

    第三种:调用API函数

    这是处理问题更符合面向对象的一种方式:

    复制代码
    1 public void function1(int n){
    2      String result = Integer.toBinaryString(n);
    3      //int r = Integer.parseInt(result);
    4      //System.out.println(r);
    5      System.out.println(result);
    6  }
    复制代码

     

    小小的建议:  此代码中,可以直接用字符串输出;也可以利用Interger.parseInt()转化为int,但不建议这种方式,当为负数时,int型的表示不了32的一个整数

     

    展开全文
  • 十进制转十六进制方法

    万次阅读 2011-11-28 09:05:42
    注意:(1010[10]改为A,1011[11]改为B,1100[12]改为C,1101[13]改为D,1110[14]改为E,1111[15]改为F) 如28的二进制为:0001 1100 转为十六进制为:1C 注意0x是十六进制的前缀用来区分其他进制 2,可以把...
     
    

    十进制转十六进制方法

    1,8421法:先把十进制转为2进制,然后从右到左每四个划分为一组进行转换
    注意:(1010[10]改为A,1011[11]改为B,1100[12]改为C,1101[13]改为D,1110[14]改为E,1111[15]改为F)

    如28的二进制为:0001 1100
    转为十六进制为:1C
    注意0x是十六进制的前缀用来区分其他进制

    2,可以把十进制的数以16为权进行展开

    16为权注意:个位为几个1,从十位开始几个(16的一次方),百位就是几个(16的2次方即256),以此类推。

    转换方法直接拿十进制的数除以十六,
                   如果商比16小,则商是十位,余数为个位
                   如果商比16大,则拿商继续除以16得商为b,余数为c,则b为百位,c为十位,余数为个位,只要商大于16,则必须继续除以16,则其商为千位,余数为百位,并以此类推

    例子:28转为十六进制:28/16=1 28%16=12(看顶部的注意) ,则结果为1C
          280转为十六进制:280/16=17 280%16=8,由于17>16,因此继续除17/16=1 17%16=1,百位为1,十位为1,个位为8,所以结果为118
          2800转为十六进制:2800/16=175 2800%16=0,由于175>16,175/16=10 175%16=15, 得结果为AF0
          5000转为十六进制:5000/16=312 5000%16=8 
                           由于312>16,312/16=19 312%16=8
                           由于19>16,19/16=1 19%16=3
                           千位为1,百位为3 十位为8 个位为8,得结果为1388   

    (10进制转8进制也可以沿用上面的办法进行处理)   

    展开全文
  • 递归实现十进制二进制

    万次阅读 2015-03-26 10:39:23
    //输入一个十进制,自己写一个函数转换为二进制 //10进制转2进制:方法是除以2取余,逆序排列 //如果想转换为 8进制,则把代码中2改为8就OK //下面这个是递归!!! void change2(int num)//如果输入num为10 {...
  • 然后,打开Hex Editor Neo软件选择白底,将默认十六进制改为二进制,操作如图: 得到结果如图: 发现,前四行是文件头,除此之外,其余编码都为00000000。 然后,修改其中一些编码,得到图案: 多次调试...
  • 点分十进制IP转换32位二进制IP,带合法性校验 首先给出校验方法,遍历字符串,对 ‘.’ 进行计数,同时以 ‘.’ 作为分隔,取出每一段数字,在 ‘.’ 数量是合法 3 个情况下,对每一段数字进行大小检查,都...
  • 递归操作是函数一直在调用自身一种方法,它通常把一个大型复杂问题层层转化为一个与原问题相似规模较小问题来求解,递归策略只需少量...例:将一个正整型十进制数转换为二进制数:方法十进制数字除以2取余数
  • 进制的转换

    2021-03-31 17:27:05
    R进制内的转换 八进制与十六进制间的转换需要通过二进制。 而二进制与八进制间的转换方法如下: 八进制转换为二进制,每一位八进制数兑换成对应的三位...十进制转换为二进制的转换方法如下: 对于整数部分,使用除二取.
  • 格雷码(循环碼)是任意两个相邻数代码只有一位二进制数不同BCD码,它与奇偶校验码同属可靠性编码。 格雷碼(Gray code)是由貝爾實驗室Frank Gray在1940年提出,用於在PCM(脈衝編碼調變)方法傳送訊號時防止...
  • 色值透明度与十六进制代码转换

    万次阅读 2016-10-26 15:46:43
    解析:〈#ffffffff〉#ffffffff由#加八位数字或字母组成...进位制转换器RGB调色板一、进位制转换器获取透明代码的方法安装打开,出现一个操作面板,Hex(十六进制)、Dec(十进制)、Octal(八进制)、Bin(二进制)输出
  • 解决方法就是采用事件委托,将在li 对象上面要处理事件委托给父元素或者祖先元素,即父元素绑定事件监听。修改代码如下所示:<script>(function () { var a = document.getElementById('list'); a.add.....
  • 程序员二进制计算器 v1.36

    热门讨论 2014-07-16 16:21:43
    程序员打造计算器,二进制运算强大,支持64位。 采用表达式驱动,输入表达式便即时显示结果,抛弃传统计算器繁琐按钮,表达式可粘贴或回调重复使用。 支持二进制串直接运算,如0b1101 & 0b0011= 0b0001。 ...
  • 写一个程序,将输入的十进制数据M 转换八进制数据M8,将其调试通过。在此基础上修改程序,实现十进制数据M 向N 进制(2或8或16)转换。 (1)采用顺序存储结构实现栈。 (2)采用链表结构实现栈。 3.
  • 透明度十六进制代码

    2018-05-12 23:03:59
    解析:〈#ffffffff〉#ffffffff由#加八位数字或字母...进位制转换器RGB调色板一、进位制转换器获取透明代码的方法安装打开,出现一个操作面板,Hex(十六进制)、Dec(十进制)、Octal(八进制)、Bin(二进制)输出...
  • 透明度与十六进制代码转换

    千次阅读 2018-11-25 13:43:11
    解析:〈#ffffffff〉 #ffffffff由#加八位数字或字母组成,前两个ff透明度(十六进制),后面六位ffffff颜色代码...Hex(十六进制)、Dec(十进制)、Octal(八进制)、Bin(二进制) 输出框; Hex(输出十...
  • 10进制转换2进制的方法是将一个数(记n)除,记录所得余数,然后令n=n/2,将n再除,记录所得余数,一直循环下去,直到n的值零,最后倒序输出所有余数即结果。因此这里可以模仿该方法进行递归函数设计。...
  • 一, 技术分析 其实大部分情况下,图方便话,重做系统可以解决 ,这个也不是中病毒,是注册表被篡改了,可以通过修改恢复。 解决方案 regedit (register ... 将CodePage选项将数值改为十六进制3a8或十进制”...
  • 八进制,十六进制,十进制二进制的转换 集合的修改方法 字符串常用方法 三元运算  三元运算简化了if else的语句,将四行代码简化一行。三元运算的格式:条件真执行命令 if 条件 else 条件...
  • 计算器

    2020-08-25 21:58:08
    这里写自定义目录标题90H1、当改为byte时,出现有符号的十进制。我们如何表示负数的二进制呢?1、知道负数,求二进制数。补码就是负数在计算机中的二进制表示方法!2、知道一个二进制数,怎么求其十进制数呢(对负数...
  • 内置函数就是python中本身存在函数可以直接调用: abs是绝对值 all方法列表中元素都时候返回真0假非0真 any方法列表中元素有一个时候真 bin方法十进制转成二进制 bool判断是否假0是假空...
  • 昨天肥家,累半死没写。 一个比较常见而且非常有用: NOP nop是什么呢, 就像他英文意思一样,nonono! 啥都没有,啥都不干。 nop常见用于修改汇编码位置, ...Q1:疑问:什么不把进...
  • 要关闭D盘,则改为08 00 00 00,若要关闭C盘和D盘,则改为0C 00 00 00(C是十六进制,转成十进制就是12)。 理解了原理后,下面以我电脑为例说明如何操作:我电脑有一个软驱、一个硬盘(5个分区)、一个光驱,...
  • 内置方法(1)

    2017-10-21 17:30:00
    1、abs() 绝对值 2、all() 可迭代对象中全部真时真 3、any() 可迭代对象中...6、bytearray() 可修改的二进制列表   7、callable() 是否可调用 8、chr() 把ascii码数字转字母 9、ord() 把asc码...
  • 【第一题】生成交替二进制字符串最少操作数 分析: 方法一:双指针 方法二:直接和前一个字符异或,假如1,则该位取反 注意,这里是字符串,不能更改,并且也不能进行位运算!!另外,是输出修改最少操作数!...
  • # print(all([1,0,3]))#非0真,每个元素都真或者时候就真# print(any([1,0,3]))#任一元素真都真,如果迭代对象空则false#bin(8)#将数字十进制二进制# a=bytes("abcd",encoding="utf-8")#将...
  • 通过十进制数字 0~255 对于与8位二进制的数,从而来控制各个引脚的高低电平; 使用方法: shiftOut(dataPin, clockPin, bitOrder, value) 共四个参数,而前三个参数一般配置好了就不用了,我们只需要修改value的...
  • 正好要使用该功能,上网...新建一个二进制项目,在数值名中输入DNS名称,键值IP的二进制编码(此处是每个十进制的值,转换16进制),保存注册表,即可使用浏览器访问该域名。 转载于:https://www.cnblogs.com/...
  • node.jsbuffer

    2021-01-18 21:08:15
    buffer的结构和数组很像,操作的方法也和数组类似; 数组中不能存储二进制文件,而buffer就是专门存储二进制数据; 使用Buffer不需要引入模块,直接使用即可 在buffer中存储的是二进制数据,而显示时都是以16进制...

空空如也

空空如也

1 2 3 4 5 ... 16
收藏数 302
精华内容 120
关键字:

十进制改为二进制的方法