精华内容
下载资源
问答
  • python十进制转二进制,可指定位数

    千次阅读 2021-01-12 08:41:19
    # convert a decimal (denary, base 10) integer to a binary string ...5) # should give a ValueError 开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明python十进制转二进制,可指定位数

    # convert a decimal (denary, base 10) integer to a binary string (base 2)

    # tested with Python24 vegaseat 6/1/2005

    def Denary2Binary(n):

    '''convert denary integer n to binary string bStr'''

    bStr = ''

    if n < 0: raise ValueError, "must be a positive integer" if n == 0: return '0' while n > 0:

    bStr = str(n % 2) + bStr

    n = n >> 1

    return bStr

    def int2bin(n, count=24):

    """returns the binary of integer n, using count number of digits"""

    return "".join([str((n >> y) & 1) for y in range(count-1, -1, -1)])

    # this test runs when used as a standalone program, but not as an imported module

    # let's say you save this module as den2bin.py and use it in another program

    # when you import den2bin the __name__ namespace would now be den2bin and the

    # test would be ignored

    if __name__ == '__main__':

    print Denary2Binary(255) # 11111111

    # convert back to test it

    print int(Denary2Binary(255), 2) # 255

    print

    # this version formats the binary

    print int2bin(255, 12) # 000011111111

    # test it

    print int("000011111111", 2) # 255

    print

    # check the exceptions

    print Denary2Binary(0)

    print Denary2Binary(-5) # should give a ValueError

    开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明python十进制转二进制,可指定位数!

    展开全文
  • # convert a decimal (denary, base 10) integer to a binary string ...5) # should give a ValueError 开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明python十进制转二进制,可指定位数

    # convert a decimal (denary, base 10) integer to a binary string (base 2)

    # tested with Python24 vegaseat 6/1/2005

    def Denary2Binary(n):

    """convert denary integer n to binary string bStr"""

    bStr = ""

    if n < 0: raise ValueError, "must be a positive integer" if n == 0: return "0" while n > 0:

    bStr = str(n % 2) + bStr

    n = n >> 1

    return bStr

    def int2bin(n, count=24):

    """returns the binary of integer n, using count number of digits"""

    return "".join([str((n >> y) & 1) for y in range(count-1, -1, -1)])

    # this test runs when used as a standalone program, but not as an imported module

    # let"s say you save this module as den2bin.py and use it in another program

    # when you import den2bin the __name__ namespace would now be den2bin and the

    # test would be ignored

    if __name__ == "__main__":

    print Denary2Binary(255) # 11111111

    # convert back to test it

    print int(Denary2Binary(255), 2) # 255

    print

    # this version formats the binary

    print int2bin(255, 12) # 000011111111

    # test it

    print int("000011111111", 2) # 255

    print

    # check the exceptions

    print Denary2Binary(0)

    print Denary2Binary(-5) # should give a ValueError

    开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明python十进制转二进制,可指定位数!

    展开全文
  • 二进制转十进制代码

    2018-12-27 14:54:04
    二进制转十进制,首先讲一下“权重”的概念 数字中某位的权重:2的(该位所在的位数(从右至左)-1)次方 比如:10 0的权重为:2^(1-1)=1 1的权重为:2^(2-1)=2 二进制转十进制:数字中所有位*本位的权重...
  • 假设有这么一个函数valueAtBit(num, bit),输入一个十进制数num,求它的二进制数的bit位是多少(注意bit应该从1算起) 以下是几种实现方法的总结: 方法一,最硬核的方法 这个方法模拟了平时我们计算二进制数的过程...

    题目描述:
    假设有这么一个函数valueAtBit(num, bit),输入一个十进制数num,求它的二进制数的bit位是多少(注意bit应该从1算起)
    以下是几种实现方法的总结:

    方法一,最硬核的方法

    这个方法模拟了平时我们计算二进制数的过程:

    1. num除以2,求出得商和余数(假设商为resu,余数为rest)
    2. 拿上次的商resu再除以2,求得新的商resu和本轮的余数rest
    3. 重复1、2步操作,直至商resu为0
    4. 倒序将所有的余数rest拼接即为该十进数的二进制表示

    将上述过程实现成js代码如下:

    function valueAtBit1(num, bit) { // 方法一
    	var result = [];
    	var rest = 0;
    	var resu = num;
    	while (resu != 0) {
    		rest = resu % 2;
    		resu = parseInt(resu / 2);  // 这里不要漏掉将小数转成整数
    		result.push(rest);  // 这里的数组即为存储二进制数的各个位数(字符类型)
    	}
    	return result[bit - 1];  // 这里是应题目要求,求bit位的
    }
    

    方法二,使用js自带方法toString

    function valueAtBit2(num, bit) { // 方法二
    	var binary = num.toString(2);
    	return binary[binary.length - bit];
    }
    

    toString接收一个参数radix(基数),表示你要把该数字对象(注意是数字对象才包含该方法,不可以是字面量)转成几进制的字符串。

    方法三,使用移位操作

    function valueAtBit3(num, bit) { // 方法三
    	return num >> (bit - 1) & 1; //下面两种不可以, 因为只有与运算才能把除第一位以外的其他位“置零”.
    	// return num >> (bit - 1) | 0;
    	// return num >> (bit - 1) ^ 0;
    }
    

    这个方法是跳过求二进制数这个过程,直接求bit位的,因为移位操作只能是对二进制进行运算,所以这里可以直接用num,>>会隐式转换成二进制。
    这个方法的原理是这样的:(不过如果大家看不懂以上的语句,建议在这之前先看一下位运算的基础知识哈)

    1. 先让所求位向右移到第一位,这时左边空出来的位会自动补0,先叫它“已移位的num”
    2. 让移位操作后的这个数和1相与(1的二进制除第一位左边全为0),这样相与了之后,得到的结果是除第一位之外的其他位都变为0,此时按照相与运算的运算规则:- 如果“已移位的num”第一位是0那么相与之后是0;- 如果“已移位的num”第一位是1那么相与之后是1。此时返回的结果便是所求。

    可能我陈述得有点乱,不过大家可以亲测一下,原理很巧妙哦。

    方法四,仅使用位相与操作

    function valueAtBit4(num, bit) { // 方法四
    	var binary = Math.pow(2, bit - 1);
    	return (num & binary) == 0 ? 0 : 1; // ==比&优先级要高所以需要加括号
    }
    

    该方法与方法三有点相似,不过这个方法不需进行移位操作,而是先生造一个与所求位匹配的二进制数,让它们俩相与,如果结果为非零则返回1,结果为零则返回0
    比如说要求29的二进制数的第3位,那么过程如下:

    1. 29 的二进制表示为 11101(这个过程由位操作符自动转换)
    2. 求第 3 位,那么生造一个二进制数 00100(除所求位为1,其他位为0),能达到这个效果的就需要用到Math.pow()这个方法了
    3. 让1、2步的这两个数进行位相与,结果是除所求位之外的其他位变为0,所求位如果原来是1则相与之后该位为1;,所求位如果原来是0则相与之后该位为0;(在本例中结果为 00100)
    4. 通过三元表达式判断结果并返回:判断第3步的结果是否为0,如果为零则返回0,如果非零则返回1(在本例中,结果00100即为十进制的4,非零,所以返回1)

    我们可以验证一下结果,返回的1在原来的11101的第三位中确实是1,大家也可以验证看看其他位。原理也比较巧妙哦。
    其中方法三和方法四学自牛客网的巨佬们,在这里要谢谢各位巨佬们。
    同时也感谢读者们能读到最后,阿里嘎多~

    展开全文
  • php教程/***十进制转二进制、八进制、十六进制 不足位数前面补零*** @param array $datalist 传入数据array(100,123,130)* @param int $bin 转换的进制可以是:2,8,16* @return array 返回数据 array() 返回没有数据...

    php教程

    /**

    *十进制转二进制、八进制、十六进制 不足位数前面补零*

    *

    * @param array $datalist 传入数据array(100,123,130)

    * @param int $bin 转换的进制可以是:2,8,16

    * @return array 返回数据 array() 返回没有数据转换的格式

    * @copyright chengmo qq:8292669

    */

    function decto_bin($datalist,$bin)

    {

    static $arr=array(0,1,2,3,4,5,6,7,8,9,'a','b','c','d','e','f');

    if(!is_array($datalist)) $datalist=array($datalist);

    if($bin==10)return $datalist; //相同进制忽略

    $bytelen=ceil(16/$bin); //获得如果是$bin进制,一个字节的长度

    $aoutchar=array();

    foreach ($datalist as $num)

    {

    $t="";

    $num=intval($num);

    if($num===0)continue;

    while($num>0)

    {

    $t=$arr[$num%$bin].$t;

    $num=floor($num/$bin);

    }

    $tlen=strlen($t);

    if($tlen%$bytelen!=0)

    {

    $pad_len=$bytelen-$tlen%$bytelen;

    $t=str_pad("",$pad_len,"0",str_pad_left).$t; //不足一个字节长度,自动前面补充0

    }

    $aoutchar[]=$t;

    }

    return $aoutchar;

    }

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

    2021-06-24 12:40:04
    中文名十进制转二进制外文名Decimal system to binary system适用领域电子、编程、编码应用学科数学十进制转进制二进制转十进制编辑语音十进制转二进制方法一小数点前或者整数要从右到左用二进制的每个数去乘以2的...
  • 计算器在显示二进制位数时候,如果开头是0.是不会显示的,对于在单片机混的人,这个有时候很麻烦,所以写个小工具. 功能就是输入十进制数字,然后显示出2进制,每显示4位一次空格,可以调整位数范围(8的倍数) 如果有谁能...
  • python 十进制转二进制,输出固定长度位数,带有都好格式的数据格式 from os import times #from typing import Protocol #from typing_extensions import final import numpy as np import math import copy import ...
  • 十进制转二进制例题

    2021-06-09 05:38:08
    )十进制转二进制简单的来讲,就是把一个十进制的数÷2,一直÷,直到不能除了,就像是1÷2,在十进制转二进制的时候,它的答案为0,没有余数就写0,然后把前面的余数全部合并在一起,不是加在一起,如果第一个数是0...
  • JS 十进制转二进制(控制位数

    千次阅读 2018-05-19 23:34:39
    主要需求:十进制转二进制,控制指定的位数。 详细说明见:IFE2018之JS小任务 转化显示后的二进制数为bin-bit中输入的数字宽度。 dec-number为5,bin-bit为5,则转化后数字为00101。 如果bin-bit小于转化后...
  • 二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码...二进制转换十进制公式:abcd.efg(2)=d*2^0+c*2^1+b*2^2+a*2^3+e*2^-1+f*2^-2+g*2^-3(10)例如二进制数据110.11,其权的大小顺序为2^2、2^1、2^0...
  • 输入一个正整数(十进制),输出此整数对应的二进制数(用循环实现,但不用数组,也不用函数调用)。本篇文章使用的是C语言编写,有需要的同学可适当进行参考!分析:十进制转换成二进制的方式:用辗转相除依次取余,...
  • 展开全部下面是根据十进制数62616964757a686964616fe59b9ee7ad9431333365646331转二进制数的算法所写的一段Java程序示例代码:import java.math.BigDecimal;public class Test {public static void main(String[] ...
  • )【源码运行环境】操作系统:Windows 10编译环境:Dev C++(基于C99标准)【原理】十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:1、用2整除十进制整数,可以得到一个商和余数;2、再用...
  • 以上就是四十五资源网为大家整理的Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制) 两种python 十进制转二进制函数哪种更好内容,如果觉得本站更新的资源对您有帮助 不要忘记分享给您身边的朋友哦...
  • 十进制转为任意位数二进制

    千次阅读 2018-11-14 23:26:58
    void func( unsigned int num, unsigned int nbit, char *str ) { unsigned int i; unsigned int j = 0; for ( i = nbit - 1; i &gt;= 0; i-- ) { str[j++] = '0' + ( (num &gt;...}
  • /*运用递归算法*/#includevoid B(int n) //定义函数{if (n != 0){printf("%d",n%2);B(n / 2);}}int main(){int n;...printf("输出二进制:");B(n); //在B()函数里打印二进制数return 0;}/*定义数组并使用...
  • I'm making a project of converting decimal number into binary. But I have a problem that how can I convert any entered number into binary (I'm using array), here is my code:public void Decimal2Binary...
  • java 十进制转二进制 并补足长度 /** * 十进制数转为2进制数 * @param num 十进制数 * @param size 返回的位数 (可以根据自己需求设置) * @return */ public static String decimalToBinary(int num, int ...
  • 主要需求:十进制转二进制,可以控制指定的位数。 转化显示后的二进制数为bin-bit中输入的数字宽度。dec-number为5,bin-bit为5,则转化后数字为00101。如果bin-bit小于转化后的二进制本身位数,则使用原本的位数,...
  • JS十进制转二进制(可控制位数

    千次阅读 2018-11-30 15:32:55
    主要需求:十进制转二进制,可以控制指定的位数。 转化显示后的二进制数为bin-bit中输入的数字宽度。 dec-number为5,bin-bit为5,则转化后数字为00101。 如果bin-bit小于转化后的二进制本身位数,则使用原本的位数...
  • Java本身提供了integer...public class exam{ //—————————————-// 此程序可将任意位十进制至九进制数,// 若超过十进制则不能保证正确.//—————————————-public static void main(...
  • matlab实现十进制二进制定点有符号补码小数的转换,其中定点小数的整数部分位长和小数部分位长可以自己指定,输出的最高位表示符号位(0为整数,1为负数),补码表示
  • 十进制小数或带小数的十进制转二进制十进制小数转换成二进制小数采用&amp;amp;amp;amp;amp;quot;乘2取整,顺序排列&amp;amp;amp;amp;amp;quot;法。具体做法是:用2乘十进制小数,可以得到积,将积的...
  • 需求说明 实现当点击转化按钮时,将输入的十进制数字转化为... 如果bin-bit小于转化后的二进制本身位数,则使用原本的位数,如dec-number为5,bin-bit为2,依然输出101,但同时在console中报个错 代码如下: &l...
  • 下面我们开讲原理,举个十进制整数转换为二进制整数的例子,假设十进制整数A化得的二进制数为edcba 的形式,那么用上面的方法按权展开, 得 A=a(2^0)+b(2^1)+c(2^2)+d(2^3)+e(2^4) (后面的和不正是化十进制的过程...
  • 十进制转二进制原理

    千次阅读 2021-04-22 19:11:58
    1. 十进制整数转二进制 假设十进制正整数值为A,对应的二进制数为abcde。 众所周知,二进制数换算为十进制的公式如下: A = a(2^4) + b(2^3) + c(2^2) + d(2^1) + e(2^0) 所以咱们只要把a,b,c,d,e都取出来就能...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 96,733
精华内容 38,693
关键字:

十进制转二进制位数不够