-
c++十六进制转十进制_十进制与二进制、八进制、十六进制互转
2020-11-28 11:57:26十进制与二进制互转首先理解十进制如何转二进制:将十进制数据除以2直到商为0,然后将余数从下往上排序连接,即可得到该数字的二进制数。如:整数1313/2=6余16/2=3余03/2=1余11/2=0余1取13余数,倒序连接。所以13...一.十进制与二进制互转
首先理解十进制如何转二进制:将十进制数据除以2直到商为0,然后将余数从下往上排序连接,即可得到该数字的二进制数。
如:整数13
13/2=6余1
6/2=3余0
3/2=1余1
1/2=0余1
取13余数,倒序连接。所以13转化二制为1101
可以用转化工具测试https://tool.lu/hexconvert/
理解十进制如何转换为二进制算法,那我们用PHP代码实现一下
1.
echo decbin(13)
输出结果是1101,这种方法特别简单,但实现原理你知道么?你不知道。。。
你不知道自己写写不就知道了么
$tenChangetwoFun = function ($num = 0){ if($num < 2) { return $num; } $twoArr = []; $shang = $num / 2; $yushu = $num % 2; array_unshift($twoArr, $yushu); while ($shang) { $yushu = $shang % 2; $shang = intval($shang / 2); array_unshift($twoArr, $yushu); } return implode('', $twoArr);};echo $tenChangetwoFun(15);
知道了十进制转二进制了,我们来聊一下二进制转化为十进制
解释一下,解释过程非常重要,要仔细看:
从最低位(最右)算起,位上的数字乘以本位的权重,权重就是2的第几位的位数减一次方。比如第1位:2^(1-1)=1,第2位2^(2-1)=2,以此类推,二进制1101,换算十进制1*2^(1-1)+0*2^(2-1)+1*2^(3-1)+1*2^(4-1)=1+0+4+8=13
用代码实现一下:
echo bindec(1101);
这段代码是不是很简单,虽然简单,但我们也要知道它实现的原理,我们用php代码实现一下:
$twoChangeTenFun = function ($twonum){ $twonum = (string)$twonum; $len = strlen($twonum); $twonum = strrev($twonum); if($len < 1) { return 0; } $total = 0; for ($i = 0; $i< $len; $i++) { $total += $twonum[$i]*pow(2,$i); } return $total;};echo $twoChangeTenFun(1101);
以上是十进制与二进制互转,接下来讲一下十进制与八进制互转
二.十进制转八进制
十进制转八进制跟十进制转二进制原理一样,如图:
如:整数130
130/8=16余2
16/8=2余0
2/8=0余2
取130的余数,倒序连接,得出202
理解十进制转八进制算法,我们用php代码实现一下
echo decoct(130);
得出结果为202;这段代码是不是也很简单,我们理解一下它的实现原理,用php代码实现一下:
$tenChangeeightFun = function ($num = 0){ if($num < 8) { return $num; } $eightArr = []; $shang = $num / 8; $yushu = $num % 8; array_unshift($eightArr, $yushu); while ($shang) { $yushu = $shang % 8; $shang = intval($shang / 8); array_unshift($eightArr, $yushu); } return implode('', $eightArr);};echo $tenChangeeightFun(130);
惊不惊讶,刺不刺激,是不是跟上面二进制与十进制代码转化一样,对!就是一样的,可以用一套方法,传不同参数就行了。
知道十进制怎么转八进制,来看一下八进制转十进制呢,跟二进制转十进制一样,从最低位(最右)算起,位上的数字乘以本位的权重,权重就是8的第几位的位数减一次方。比如第1位:8^(1-1)=1,第2位8^(2-1)=2,以此类推,八进制202,换算十进制2*8^(1-1)+0*8^(2-1)+2*8^(3-1)=2+0+128=130
最简单代码:
echo octdec(202);
我们在用最复杂的代码实现一下,知道它的实现原理
$eightChangeTenFun = function ($eightnum){ $eightnum = (string)$eightnum; $len = strlen($eightnum); $eightnum = strrev($eightnum); if($len < 1) { return 0; } $total = 0; for ($i = 0; $i< $len; $i++) { $total += $eightnum[$i]*pow(8,$i); } return $total;};echo $eightChangeTenFun(202);
这段代码跟二进制转十进制一样。通过这两个转换,那十进制转十六进制与十六进制转十进制就不详细说明了。
-
java 二进制转十进制的算法_java中位运算与整数的十进制转二进制
2021-02-28 12:23:20位运算是指按二进制进行的运算。在系统软件中,常常需要处理二进制位的问题。C语言提供了6个位操作运算符。这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型。(java中...位运算是指按二进制进行的运算。
在系统软件中,常常需要处理二进制位的问题。C语言提供了6个位操作运算符。这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型。(java中基本相同)
运算符介绍:
& 按位与,如果两个相应的二进制位都为1,则该位的结果值为1,否则为0
| 按位或,两个相应的二进制位中只要有一个为1,该位的结果值为1
^ 按位异或,若参加运算的两个二进制位值相同则为0,否则为1
~ 取反 ,~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1变0
<
>> 右移 ,将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数,高位补0
应用思路:
在应用中当涉及多选1或者多选多的选择结果问题时,可通过位运算的结果来表示选择和不选的情况,这样能节省存储并提高效率。
public static void main(String[] args)
{
int num = 1;//1
System.out.println(Integer.toBinaryString(num));
System.out.println(num <
System.out.println(num <
System.out.println(num | num <
int num2 = 8;
System.out.println(Integer.toBinaryString(8));
System.out.println(num2 >> 1);
System.out.println(num2 >> 2);
System.out.println(num2 >> 1 | num2 >> 2 | num2 >> 3);
int num3 = 16;
String s = Integer.toBinaryString(num3);
System.out.println("s=" + s);
char[] a = s.toCharArray();
for (int i = 0; i
{
System.out.println("num=" + i + ",c=" + a[i] + ",notZero=" + (a[i] == '1'));
}
}
结果输出:
1
2
4
7
1000
4
2
7
s=10000
num=0,c=1,notZero=true
num=1,c=0,notZero=false
num=2,c=0,notZero=false
num=3,c=0,notZero=false
num=4,c=0,notZero=false
-
十进制负数转换为二进制
2021-04-10 14:20:22十进制负数转换为二进制 例如:-10 10的二进制是00001010 算法: 0 0 0 0 1 0 1 0 每位依次取反 1 1 1 1 0 1 0 1 再加上1 1 1 1 1 0 1 1 0 结果:11110110 各种进制: 二进制:11110110 八进制: 366 十进制: -10 十六... -
hive转16进制unhex_十进制与二进制、八进制、十六进制互转
2021-01-05 13:10:16十进制与二进制互转首先理解十进制如何转二进制:将十进制数据除以2直到商为0,然后将余数从下往上排序连接,即可得到该数字的二进制数。如:整数1313/2=6余16/2=3余03/2=1余11/2=0余1取13余数,倒序连接。所以13...一.十进制与二进制互转
首先理解十进制如何转二进制:将十进制数据除以2直到商为0,然后将余数从下往上排序连接,即可得到该数字的二进制数。
如:整数13
13/2=6余1
6/2=3余0
3/2=1余1
1/2=0余1
取13余数,倒序连接。所以13转化二制为1101
可以用转化工具测试https://tool.lu/hexconvert/
理解十进制如何转换为二进制算法,那我们用PHP代码实现一下
1.
echo decbin(13)
输出结果是1101,这种方法特别简单,但实现原理你知道么?你不知道。。。
你不知道自己写写不就知道了么
$tenChangetwoFun = function ($num = 0){ if($num < 2) { return $num; } $twoArr = []; $shang = $num / 2; $yushu = $num % 2; array_unshift($twoArr, $yushu); while ($shang) { $yushu = $shang % 2; $shang = intval($shang / 2); array_unshift($twoArr, $yushu); } return implode('', $twoArr);};echo $tenChangetwoFun(15);
知道了十进制转二进制了,我们来聊一下二进制转化为十进制
解释一下,解释过程非常重要,要仔细看:
从最低位(最右)算起,位上的数字乘以本位的权重,权重就是2的第几位的位数减一次方。比如第1位:2^(1-1)=1,第2位2^(2-1)=2,以此类推,二进制1101,换算十进制1*2^(1-1)+0*2^(2-1)+1*2^(3-1)+1*2^(4-1)=1+0+4+8=13
用代码实现一下:
echo bindec(1101);
这段代码是不是很简单,虽然简单,但我们也要知道它实现的原理,我们用php代码实现一下:
$twoChangeTenFun = function ($twonum){ $twonum = (string)$twonum; $len = strlen($twonum); $twonum = strrev($twonum); if($len < 1) { return 0; } $total = 0; for ($i = 0; $i< $len; $i++) { $total += $twonum[$i]*pow(2,$i); } return $total;};echo $twoChangeTenFun(1101);
以上是十进制与二进制互转,接下来讲一下十进制与八进制互转
二.十进制转八进制
十进制转八进制跟十进制转二进制原理一样,如图:
如:整数130
130/8=16余2
16/8=2余0
2/8=0余2
取130的余数,倒序连接,得出202
理解十进制转八进制算法,我们用php代码实现一下
echo decoct(130);
得出结果为202;这段代码是不是也很简单,我们理解一下它的实现原理,用php代码实现一下:
$tenChangeeightFun = function ($num = 0){ if($num < 8) { return $num; } $eightArr = []; $shang = $num / 8; $yushu = $num % 8; array_unshift($eightArr, $yushu); while ($shang) { $yushu = $shang % 8; $shang = intval($shang / 8); array_unshift($eightArr, $yushu); } return implode('', $eightArr);};echo $tenChangeeightFun(130);
惊不惊讶,刺不刺激,是不是跟上面二进制与十进制代码转化一样,对!就是一样的,可以用一套方法,传不同参数就行了。
知道十进制怎么转八进制,来看一下八进制转十进制呢,跟二进制转十进制一样,从最低位(最右)算起,位上的数字乘以本位的权重,权重就是8的第几位的位数减一次方。比如第1位:8^(1-1)=1,第2位8^(2-1)=2,以此类推,八进制202,换算十进制2*8^(1-1)+0*8^(2-1)+2*8^(3-1)=2+0+128=130
最简单代码:
echo octdec(202);
我们在用最复杂的代码实现一下,知道它的实现原理
$eightChangeTenFun = function ($eightnum){ $eightnum = (string)$eightnum; $len = strlen($eightnum); $eightnum = strrev($eightnum); if($len < 1) { return 0; } $total = 0; for ($i = 0; $i< $len; $i++) { $total += $eightnum[$i]*pow(8,$i); } return $total;};echo $eightChangeTenFun(202);
这段代码跟二进制转十进制一样。通过这两个转换,那十进制转十六进制与十六进制转十进制就不详细说明了。
-
遗传算法应用(实现十进制小数转换为二进制)
2020-02-11 16:11:02遗传算法应用 一、问题概述 求 y=10sin(5x)+7*|x-5|+10 最大值。 二、问题解决 1.产生初始种群 用随机数生成器分别产生8、16、32个随机数(由于...matlab中十进制转二进制函数dec2bin()默认是6位,因此,我们先采用... -
随意转换之简单算法 二进制和十进制.ppt
2020-07-01 07:39:39十进制 表示法 103=1000102=100101=10两01 6= 6100 22 2101+210 358= 3102+5101+810 4699=4103+6102+9101+9100 二进制 表示法: 210=102429512282256 27=12826=64253 24=1623822=421=220=1 二进制转换成十进制 11=121... -
二进制字符串转十进制8位,算法实现.vi
2020-03-30 14:45:47本VI的原理是基于 二进制转十进制的公式进行的,学过计算机的朋友大家都知道二进制转十进制的算法吧如11111111B=1*2的7次+1*2的6次+。。。。。。1*2的0次=255(D) -
十进制转二进制
2014-05-01 15:47:00十进制转二进制的递归实现算法: 1 #include <stdio.h> 2 void dectobi(int a); 3 4 int main() 5 { 6 int i; 7 printf("please input a decimical number\n"); 8 scanf("%d",&i... -
C语言新手求学路十进制转二进制
2020-12-17 19:22:44用一个算法实现十进制数向二进制数转换 任务如图
2009-02-03 16:30:00<!-- alimama_pid="mm_10249644_1605763_4929893"; alimama_titlecolor="0000FF"; alimama_descolor ="000000"; alimama_bgcolor="FFFFFF"; alimama_bordercolor="E6E6E6"; alimama_linkcolor="0080 -
javascirpt: 十进制与二进制之间的相互转换算法
2012-11-25 19:57:00十进制转换二进制: 1 var c= 0,i = 10,k; 2 var g = new Array(); 3 4 while(i!=0) { 5 k = i%2; 6 if(k != 0) { 7 i = i-k; 8 } 9 g.unshif... -
简单的十进制数字与二,八,十六进制互转
2013-04-19 22:38:27算法原理不多说了,网上很多... * 十进制转各进制 * * @param int $number * @param int|string $format */ function int10tomixed2_8_16($number,$format){ // 转换所需数组 $spc = array(0,1,2,3,4,5,6, -
十进制转换二进制(原码)
2010-11-12 21:03:00这是一个把十进制数字转换到它的二进制原码的算法,希望能给大家一些启发吧!这个算法我是用VB6写的,其中用到了函数递归调用和函数可选参数(个人感觉功能和C++中的函数重载差不多)。------------------------------... -
十进制转换二进制(原码)
2010-11-12 21:03:00这是一个把十进制数字转换到它的二进制原码的算法,希望能给大家一些启发吧!这个算法我是用VB6写的,其中用到了函数递归调用和函数可选参数(个人感觉功能和C++中的函数重载差不多)。 ------------------------... -
python的用算法进制转换详解_学习python第五天进制转换
2020-12-02 14:40:266.进制之间的转换(重要)二进制:满二进一 范围:0、1符号:0b例如:0b10...【注意】计算机只能识别二进制数据八进制:满八进一 范围:0~7符号:0o例如:0o66十进制:满十进一 范围:0~9十六进制:满十六进一范围:0~9 ... -
十进制二进制之间的转化 PHP算法
2014-12-21 16:04:00[ 十进制转二进制 ] 1 function test($var){ 2 3 $func = function($i){ 4 if($i < 2){ 5 return $i; 6 } 7 8 ... -
进制的转换
2017-04-19 21:27:00二进制转十进制,十进制转二进制的算法 十 表1二进制数和十进制数换算对照表 二进制 十进制 二进制 十进制 二进制 十进制 二进制 十进制 0000 0 ... -
十进制转换二进制(补码)
2005-05-04 19:59:00借鉴了反码算法的经验,在转换为补码的函数中,要以求反码函数为基础,...十进制转换为二进制补码的VB6代码:Public Function BinaryConvertC(ByVal iNum As Integer, Optional ByVal iLength As Integer = 8) As String -
进制算法
2019-04-07 10:36:34二进制 6的二进制 原理:对十进制数进行除2运算 结果:取余数 6的二进制为 110 十进制 –> 二进制 原理:二进制乘余 2 的过程 括号里从零开始0到2 结果:和相加得出110十进制为 6 110 02(0)+12(1)+1*2(2)... -
Python每日一练算法之“下一个稀疏数”(递归,十进制转二进制字符串)
2020-05-10 10:08:42如果一个数是稀疏数,则它的二进制表示中没有相邻的1,例如5(101)是稀疏数,但是6(110)不是稀疏数,本例将给出一个n,找出大于或等于n的最小稀疏数 问题示例: 给出n=6,返回8;给出n=4,返回4;给出n=38,返回... -
进制之间转换的算法
2012-10-12 16:26:34我们先来看看二进制转换为十进制的算法: 下面是一个例子,我们拿25来举例:(25转换为二进制是11001) 25 25/2 12 1 12/2 6 0 6/2 3 0 3/2 1 1 1/2 0 1 11001 二进制 2^4+2^3+2^0=16+8+1=25 实现... -
二进制的算法
2019-09-28 07:01:37我们经常听到十进制数和二进制数,在计算机中经常用二进制来计算,怎样才能把我们常见的十进制数转换为二进制数呢? 这里我们以十进制数68为例,8*10的0次方+6*10的一次方 45 5*10的0次方+4*10的一次方 ... -
二进制数 八进制数 十进制数 十六进制数 之间的相互转换!!!!
2016-09-27 16:06:28先说说对于我们来说最简单的 , 我们从小到大接触的算法都是十进制 ,那什么叫十进制呢? 十进制数是组成以10为基础的数字系统,有0,1,2,3, 4, 5, 6, 7, 8, 9十个基本数字组成。 也就是我们现在所学的 ... -
二进制1010.0101转换为十进制
2021-03-07 19:36:02系列文章目录 1....小数点前面的个位有1,就是2的0次方,十位有1,就是2的1次方,以此类推; 小数点后面的十分位有1,就是2的-1次方,百分位有1,就是2的-2次方,以此类推; 最后再相加即可。 ... -
进制间转换
2019-10-01 01:09:42将十进制数转换为二进制数: 非递归算法: 1 void translate(int n) //将10进制转换为8位的二进制 2 { 3 int a[10]; 4 int i,j; 5 i=0; 6 while(1) 7 { 8 a[i++]=n%2; 9 ... -
算法--进制转换
2016-04-13 15:56:45普通的是十进制转为二进制的方法,其实就是不断与2相除,取余数,直到不能除为止。每次取出的余数存储到数组或者其它容器(如StringBuffer)其它进制也一样。下面每个进制的转换列举一下:class NumSys { public ... -
Python程序员面试算法宝典---解题总结: 第6章 基本数字运算 6.9 如何把十进制数(long 型)分别以二进制和...
2019-07-20 20:46:58# -*- coding: utf-8 -*- ''' Python程序员面试算法宝典---...十进制转二进制,采用的是除二取余 以10为例, 10/2=5余数为0 5/2=2余数为1 2/2=1余数为0 1/2=0余数为1 10表示为二进制是1010, 就是除2取余的结果逆... -
进制转换的幂算法
2018-07-17 15:50:53十进制: 0 1 2 3 4 5 6 7 8 9 10 11............ 二进制: 0 1 10 11 100 101 110 111 1000 1001 1010............ 八进制: 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 21........... 十六进制:0 1 2 3 4 5 ...