进制转换

进制转换(大数)

空扰寡人 提交于 2020-01-28 18:27:22
题目链接: https://www.nowcoder.com/practice/53447aa04f32460aa20ee11d02416e3b?tpId=40&tqId=21373&tPage=3&rp=3&ru=/ta/kaoyan&qru=/ta/kaoyan/question-ranking 题目描述 将一个长度最多为30位数字的十进制非负整数转换为二进制数输出。 输入描述: 多组数据,每行为一个长度不超过30位的十进制非负整数。(注意是10进制数字的个数可能有30个,而非30bits的整数) 输出描述: 每行输出对应的二进制数。 示例1 输入 0138 输出 01111000 1 import java.math.BigInteger; 2 import java.util.Scanner; 3 public class Main{ 4 public static void main(String[] args){ 5 Scanner sc=new Scanner(System.in); 6 while(sc.hasNext()){ 7 BigInteger num=sc.nextBigInteger(); 8 System.out.println(num.toString(2)); 9 } 10 } 11 } 来源: https://www.cnblogs.com

P1017 进制转换

戏子无情 提交于 2020-01-26 07:22:12
题目描述 我们可以用这样的方式来表示一个十进制数: 将每个阿拉伯数字乘以一个以该数字所处位置为指数,以 10为底数的幂之和的形式。 与之相似的,对二进制数来说,也可表示成每个二进制数码乘以一个以该数字所处位置为指数,以 2为底数的幂之和的形式。 一般说来,任何一个正整数 R或一个负整数 −R都可以被选来作为一个数制系统的基数。如果是以 R或 −R为基数,则需要用到的数码为 0,1,…R−1。 例如当 R=7R=7R=7 时,所需用到的数码是 0,1,2,3,4,5,6这与其是 R或 −R无关。如果作为基数的数绝对值超过 10,则为了表示这些数码,通常使用英文字母来表示那些大于 9的数码。例如对 16 进制数来说,用 A 表示 10,用 B 表示 11,用 C 表示 12,以此类推。 在负进制数中是用 −R作为基数,例如 −15(十进制)相当于 11000(−2进制),并且它可以被表示为 2 的幂级数的和数。 设计一个程序,读入一个十进制数和一个负进制数的基数, 并将此十进制数转换为此负进制下的数。 输入格式 输入的每行有两个输入数据。 第一个是十进制数 n。 第二个是负进制数的基数 −R。 输出格式 输出此负进制数及其基数,若此基数超过 10,则参照 16 进制的方式处理。 思路 与普通进制转换一样,这道题也需要用取余。只不过当余数是负数时,商加一,余数变成原来的余数减R。 代码

python的进制转换

浪子不回头ぞ 提交于 2020-01-25 13:28:27
转载于: https://www.cnblogs.com/FWF1944/p/11132409.html (方法论190404) Python整数能够以十六进制,八进制和二进制来编写,作为一般以10位基数的十进制计数法的补充。 一: 上面三种进制的常用表示 >>> 0o1, 0o20, 0o377 # 八进制常用表示,0o或者0O开头,后面接数字 ( 1, 16, 255) >>> 0x01, 0x10, 0xFF # 十六进制常用表示,0x或者0X开头,后面接0-9,A-F ( 1, 16, 255) >>> 0b1, 0b10000, 0b11111111 # 二进制常用表示,0b开头,后面接01组成的数字 ( 1, 16, 255) 二: 十进制向其他进制之间的转换 使用内置函数来转换 >>> oct( 64), hex( 64), bin( 64) ( '0o100', '0x40', '0b1000000') >>> 使用字符串格式化来转化 >>> "{0:0o}, {1:0x}, {2:0b}".format( 64, 64, 64) '100, 40, 1000000' >>> "%0o, %0x, %0X" % ( 64, 255, 255) '100, ff, FF' >>> 三: 其他进制向十进制之间的转换 使用int函数来转换 >>> int( "64"),

Java进制转换

隐身守侯 提交于 2020-01-19 01:12:01
十进制转成十六进制: Integer . toHexString ( int i ) 十进制转成八进制 Integer . toOctalString ( int i ) 十进制转成二进制 Integer . toBinaryString ( int i ) 十六进制转成十进制 Integer . valueOf ( "FFFF" , 16 ) . toString ( ) 八进制转成十进制 Integer . valueOf ( "876" , 8 ) . toString ( ) 二进制转十进制 Integer . valueOf ( "0101" , 2 ) . toString ( ) 有什么方法可以直接将 2 , 8 , 16 进制直接转换为 10 进制的吗 ? java . lang . Integer类 parseInt ( String s , int radix ) 使用第二个参数指定的基数,将字符串参数解析为有符号的整数。 examples from jdk : parseInt ( "0" , 10 ) returns 0 parseInt ( "473" , 10 ) returns 473 parseInt ( "+42" , 10 ) returns 42 parseInt ( "-0" , 10 ) returns 0 parseInt ( "-FF"

【华为机试练习】进制转换

℡╲_俬逩灬. 提交于 2020-01-16 17:29:00
题目描述 写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。(多组同时输入 ) 输入描述: 输入一个十六进制的数值字符串。 输出描述: 输出该数值的十进制字符串。 解法(C语言版): #include<stdio.h> #include<math.h> int hex2dec(char hex) { if(hex >= '0' && hex <= '9') return hex - '0'; else if(hex >= 'A' && hex <= 'F') return hex - 55; else return -1; } char *dec2str(int dec) { int i, j; char str[100] = {0}; char restr[100] = {0}; i = 0; do { restr[i++] = dec % 10 + '0'; dec /= 10; }while(dec); j = 0; i = i - 1; while(i >= 0) str[j++] = restr[i--]; return str; } int main() { char instr[100] = {0}; int len, dec, tmp, i, j; while(gets(instr)) { dec = 0; len = strlen(instr); for

进制转换

故事扮演 提交于 2020-01-14 01:38:27
NOIP 2000 进制转换 题目描述 t1.cpp/in/out 我们可以用这样的方式来表示一个十进制数: 将每个阿拉伯数字乘以一个以 该数字所处位置的(值减1)为指数,以10为底数的幂之和的形式。例如: 123可表示为 1*102+2*101+3*100这样的形式。 与之相似的,对二进制数来说,也可表示成每个二进制数码乘以一个以该数 字所处位置的(值-1)为指数,以2为底数的幂之和的形式。一般说来,任 何一个正整数R或一个负整数-R都可以被选来作为一个数制系统的基数。如 果是以R或-R为基数,则需要用到的数码为 0,1,....R-1。例 如,当R=7时,所需用到的数码是0,1,2,3,4,5和6,这与其是 R或-R无关。如果作为基数的数绝对值超过10,则为了表示这些数码,通 常使用英文字母来表示那些大于9的数码。例如对16进制数来说,用A表示 10,用B表示11,用C表示12,用D表示13,用E表示14,用F表 示15。 在负进制数中是用-R 作为基数,例如-15(十进制)相当于110001 (-2进制),并且它可以被表示为2的幂级数的和数: 110001=1*(-2)5+1*(-2)4+0*(-2)3+0* (-2)2+ 0*(-2)1 +1*(-2)0 设计一个程序,读入一个十进制数和一个负进制数的基数 , 并将此十进制数转 换为此负进制下的数: -R ∈ {-2,-3,

算法训练 进制转换

你说的曾经没有我的故事 提交于 2020-01-13 09:34:35
算法训练 进制转换 时间限制:1.0s 内存限制:256.0MB 锦囊1 使用进制转换的方法。 锦囊2 和普通的进制转换类似,还是除P取余倒着数,但注意取余是取正的部分。 问题描述   我们可以用这样的方式来表示一个十进制数: 将每个阿拉伯数字乘以一个以该数字所处位置的(值减1)为指数,以10为底数的幂之和的形式。例如:123可表示为 1*102+2*101+3*100这样的形式。   与之相似的,对二进制数来说,也可表示成每个二进制数码乘以一个以该数字所处位置的(值-1)为指数,以2为底数的幂之和的形式。一般说来,任何一个正整数R或一个负整数-R都可以被选来作为一个数制系统的基数。如果是以R或-R为基数,则需要用到的数码为 0,1,....R-1。例如,当R=7时,所需用到的数码是0,1,2,3,4,5和6,这与其是R或-R无关。如果作为基数的数绝对值超过10,则为了表示这些数码,通常使用英文字母来表示那些大于9的数码。例如对16进制数来说,用A表示10,用B表示11,用C表示12,用D表示13,用E表示14,用F表示15。   在负进制数中是用-R 作为基数,例如-15(十进制)相当于110001(-2进制),并且它可以被表示为2的幂级数的和数:   110001=1*(-2)5+1*(-2)4+0*(-2)3+0*(-2)2+   0*(-2)1 +1*(-2)0   

python进制转换

。_饼干妹妹 提交于 2020-01-09 17:58:13
前言 这里主要介绍二进制、十进制、八进制、十六进制之间的相互转换,python中有专门的内置函数来实现进制转换,因此我们不需要自己写。 一、转二进制 >>> bin(10) '0b1010' >>> bin(0o12) '0b1010' >>> bin(0xa) '0b1010' 转二进制使用bin()函数,其参数默认为十进制数,八进制数需要加上0o标识,十六进制数需要加上0x标识。 二、转八进制 >>> oct(10) '0o12' >>> oct(0b1010) '0o12' >>> oct(0xa) '0o12' 转八进制使用oct()函数,其参数默认为十进制数,二进制数需要加上0b标识,十六进制数需要加上0x标识。 三、转十六进制 >>> hex(10) '0xa' >>> hex(0b1010) '0xa' >>> hex(0o12) '0xa' 转十六进制使用hex()函数,其参数默认为十进制数,二进制数需要加上0b标识,八进制数需要加上0o标识。 注意:以上进制转换的输出都是字符串类型,如若不需要前面的进制标识,只需进行字符串分割即可。例如:hex(10 )[2:]。 四、转十进制 >>> int('0b1010', 2) 10 >>> int('1010', 2) 10 >>> int('12', 8) 10 >>> int('0o12', 8) 10 >>>

转:【进制转换-概念】

青春壹個敷衍的年華 提交于 2020-01-07 11:13:57
1 符号位   C语言规定,把内存的最高位作为符号位,且用0表示正数,用1表示负数。 2 在计算机中,负数以其正值的补码形式表示 2.1 原码   一个整数,按照绝对值大小转换成的二进制数,称为原码。 如 00000000 00000000 00000000 00000110 是 6 的原码。 1 2.2 反码   将二进制数按位取反,所得的新二进制数称为原二进制数的反码。 如 00000000 00000000 00000000 00000110 的反码是 11111111 11111111 11111111 11111001 1 2.3 补码   反码加1称为补码。也就是说,要得到一个数的补码,先得到反码,然后反码加上1,所得数称为补码。   所以 -6 在计算机器的表示形式为: 1 # -6 的正值 6 的二进制: 2 00000000 00000000 00000000 00000110 3 4 # 取反得反码: 5 11111111 11111111 11111111 11111001 6 7 # +1 得补码,即 -6 在计算机中的二进制表示: 8 11111111 11111111 11111111 11111010   我们都知道负数在计算机中是以补码表示的,那为什么呢?补码的原理,而要想理解它,首先得理解算术中“ 模 ”的概念。所以首先看一下什么是模

06 python语言中的进制转换

孤街浪徒 提交于 2019-12-31 22:45:04
python语言中的进制转换 1、python语言中支持哪些进制,以及这些进制的表示法 2、如何在不同的进制之间进行转换 //py 语言支持4种进制 十进制 0-9 // 123 默认就是 十进制 十六进制 0-9 A-F //0x 0xFF12E 0x 开头的就是 十六进制 二进制 //0b 0b11010101 //这里用0B 也是可以的但是业内都是用小写的0b表示 表示二进制 八进制 //0o 0o4324 // 0o 开头的就是 八进制 除了十进制外,其他进制数字前面都是0 转换 主要是十进制向 二 八 十六 进制转换 然后就是 二 八 十六 进制 转换为十进制 //从其他进制转换到十进制,要使用int函数,该函数有2个参数 参数1:字符串类型表示待转换的数 参数2:数值类型, 例子 # coding:utf-8 print(int("0b11010101",2)) # 213 //这个就表示 2进制11010101 转换为十进制的数为 print(int("0o4324",8)) # 2260 8进制转换为 print(int("0xFF12E",16)) # 1044782 十六进制转换为 现在呢,我们要倒过来 也就是十进制转换为二 八 十六进制 例子 比如要把 432 转换为二 八 十六进制 # 432 转换为二 八 十六进制 # coding:utf-8 print