进制转换

进制转换

天涯浪子 提交于 2019-11-27 11:55:37
package array; class JinZhiTest { public static void main(String[] args) { // toHex(26); toBinary(-6); // toOctal(26); System.out.println(Integer.toBinaryString(-6)); } //十进制-->十六进制。 public static void toHex(int num) { trans(num,15,4); } //十进制-->二进制。 public static void toBinary(int num) { trans(num,1,1); } //十进制-->八进制。 public static void toOctal(int num) { trans(num,7,3); } public static void trans(int num,int base,int offset) { if(num==0) { System.out.println("0"); return ; } //定义一个对应关系表。 char[] chs = {'0','1','2','3', '4','5','6','7', '8','9','A','B', 'C','D','E','F'}; /* 一会查表会查到比较的数据。 数据一多

Erlang 进制转换

梦想与她 提交于 2019-11-27 09:36:40
文章转载自: http://www.pythonheidong.com/blog/article/2987/ http://www.cnblogs.com/me-sa/archive/2012/03/20/erlang0047.html bnot unary bitwise not integer div integer division integer rem integer remainder of X/Y integer band bitwise and integer bor bitwise or integer bxor arithmetic bitwise xor integer bsl arithmetic bitshift left integer bsr bitshift right integer 去年读过的好书之一就是这本《编码:隐匿在计算机软硬件背后的语言》( 豆瓣链接 )里面对进制有一段非常有意思的描述: 如果人类像卡通人物那样,每只手上只有 4个手指会怎样呢?我们可能永远都不会想到要发明一种以10为基础的数字系统的问题, 取而代之的是我们可能会认为数字系统基于 8是正常、自然、合理、必然的,是毫无疑问的,是非常合适的。这时,就不能称之为十进制了,得将它称作为以8为基础的数字系统或八进制。 ... ... 龙虾根本没有手指,但它两只前爪的末端都有螯

[Erlang 0047] Erlang 进制转换

ε祈祈猫儿з 提交于 2019-11-27 07:11:48
文章转载自: http://www.pythonheidong.com/blog/article/2980/ 去年读过的好书之一就是这本《编码:隐匿在计算机软硬件背后的语言》( 豆瓣链接 )里面对进制有一段非常有意思的描述: 如果人类像卡通人物那样,每只手上只有 4个手指会怎样呢?我们可能永远都不会想到要发明一种以10为基础的数字系统的问题, 取而代之的是我们可能会认为数字系统基于 8是正常、自然、合理、必然的,是毫无疑问的,是非常合适的。这时,就不能称之为十进制了,得将它称作为以8为基础的数字系统或八进制。 ... ... 龙虾根本没有手指,但它两只前爪的末端都有螯。适合于龙虾的数字系统是四进制数字系统或称为基于4的数字系统. 我们平常编程经常会遇到进制转换的问题,有时候是为了把机器可处理的转换成人类可读的,有时候是把人类可读的转成机器可处理的;有时候是把一台机器可处理的转成另外一台机器可以处理的;进制转换几乎是所有开发者的公共话题,这个问题也经常作为面试题出现......有中枪的么? 在.net中,做进制转换可以使用Convert.ToInt32(String,Base)做 2, 8, 10, 16 进制之间的转换: Convert.ToInt32("10101010",2); Convert.ToInt32("12",16); Convert.ToInt32 Method

NOIP2000提高组T1 进制转换

萝らか妹 提交于 2019-11-27 03:23:04
https://www.luogu.org/problem/P1017 题目描述 我们可以用这样的方式来表示一个十进制数: 将每个阿拉伯数字乘以一个以该数字所处位置的值减1为指数,以10为底数的幂之和的形式。例如:123可表示为 1*10 2 +2*10 1 +3*10 0 这样的形式。 与之相似的,对二进制数来说,也可表示成每个二进制数码乘以一个以该数字所处位置的值-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,

c++ 进制转换

人走茶凉 提交于 2019-11-26 23:14:21
题目描述 关于把整数N由十进制转化为R进制,我们习惯用的办法是“除R倒取余”,这种方法需要用N反复对R进行除法操作,并在做除法操作的时候记录每个余数,最后反序输出。实际上,关于进制转换,用递归的方法求解会更加简洁明了,你知道怎么做么? 输入 两个正整数N,R。1 <= N <= 10000,2 <= R <= 10。 输出 用递归的方法求十进制的N转化为R进制的结果。 样例输入 52 2 样例输出 110100 提示 Source Code #include <iostream> using namespace std; int main() { long n; int p,c,m=0,s[100]; cin >> n;//n是要转换的数 (有可能很长) cin >> p;//p是进制数 while (n != 0)//当n被取完时退出循环 { c = n % p;//c是分离出来此进制的第一位 n = n / p;//对2取整 m ++;//转换后一共有几位 s[m] = c;//把转换后的单个位放到数组里面 } for(int k = m;k >= 1;k --)//按格式输出 { if(s[k] >= 10) cout << (char)(s[k]+55); else cout << s[k]; } cout << endl; return 0; } 来源: https:/

夯实基础——P2084 进制转换

拥有回忆 提交于 2019-11-26 20:38:16
题目链接: https://www.luogu.org/problem/P2084 P2084 进制转换 题目背景 无 题目描述 今天小明学会了进制转换,比如(10101)2 ,那么它的十进制表示的式子就是 : 1*2^4+0*2^3+1*2^2+0*2^1+1*2^0, 那么请你编程实现,将一个M进制的数N转换成十进制表示的式子。 注意:当系数为0时,该单项式要省略。 输入格式 两个数,M和N,中间用空格隔开。 输出格式 共一行,一个十进制表示的式子。 输入输出样例 输入 #1 复制 2 10101 输出 #1 复制 1*2^4+1*2^2+1*2^0 说明/提示 对于100%的数据,1<M<10,N的位数不超过1000。 这道基础题的考点是有关于N进制的转换问题。 关于进制转换,我相信学过计算机的人都应有所了解,但既然写博客的目的是记录学习过程,夯实基础,那在这里我还是详细的说一下吧! 以二进制转十进制为例: 例如:101011 ,其实就是基数为2的幂的和,也就是 “ 1*2^5 + 0*2^4 + 1*2^3 + 0*2^2 + 1*2^1 + 1*2^0 ” 公式就是: 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) 小数部分暂且说(其实就是把幂依次降低)

php 进制转换base_convert

老子叫甜甜 提交于 2019-11-26 18:23:22
16进制 转为 8进制 base_convert( number,frombase,tobase ); 参数 描述 number 必需。规定要转换的数。 frombase 必需。规定数字原来的进制。介于 2 和 36 之间(包括 2 和 36)。高于十进制的数字用字母 a-z 表示,例如 a 表示 10,b 表示 11 以及 z 表示 35。 tobase 必需。规定要转换的进制。介于 2 和 36 之间(包括 2 和 36)。高于十进制的数字用字母 a-z 表示,例如 a 表示 10,b 表示 11 以及 z 表示 35。 <?php $hex = "E196"; echo base_convert($hex,16,8); ?> 参考: https://www.runoob.com/php/func-math-base-convert.html 来源: https://www.cnblogs.com/sea-stream/p/11330266.html