php 实现二进制加法运算
php实现二进制加法:
思路:没有工作中应用过此场景,但十进制的加法还是经常做的,能不能用十进制加法变相实现呢?
答案是可以的,并且php也提供进制间转换的函数,我的实现使用了
bindec():二进制转十进制;decbin():十进制转二进制
<?php
function binplus($arg1,$arg2){
if($arg1 == '' || $arg2 == ''){
return false;
}
$tmpsum = bindec($arg1) + bindec($arg2);
return decbin($tmpsum);
}
echo binplus('101','1');
知识普及:
二进制:计算机技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。他的基数是2,进位规则为:“逢二进一”,由18世纪德国数理哲学大师莱布尼兹发现
当前计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码形式存储的。
运算:
加法:分四种情况:
0+0=0;0+1=1;1+0=1;1+1=10
乘法:分四种情况:
0*0=0;0*1=0;1*0=0;1*1=1
减法:0-0=0;1-1=0;1-0=1;0-1=1
除法:00÷1=0;1÷1=1
在计算机中,除了十进制是有符号的外,其他如二进制、八进制、十六进制都是无符号的。
进制转换:
二进制转十进制:“按权展开求和”
【例】:规律:个位上的数字的次数是0,十位上的数字的次数是1,......,依次递增,而十分位的数字的次数是-1,百分位上数字的次数是-2,......,依次递减。注意:不是任何一个十进制小数都能转换成有限位的二进制数。
十进制转二进制:“除以2取余,逆序排列”
【例】:89÷2 ……144÷2 ……022÷2 ……011÷2 ……15÷2 ……12÷2 ……01· 十进制小数转二进制数:“乘以2取整,顺序排列”(乘2取整法)【例】: (0.625)10= (0.101)20.625X2=1.25 ……10.25 X2=0.50 ……00.50 X2=1.00 ……1
php 实现二进制加法运算的更多相关文章
- 整数运算:CPU内部只有加法运算
学汇编的一边儿去.我这里讲的是CPU进行计算的原理.首先我这里用MC的红石电路模拟了一个加法器:http://www.0xaa55.com/thread-313-1-1.htm首先加法器是怎么实现的呢 ...
- 【 c语言中无符号和有符号的加法运算】【深入理解】--【sky原创】
原文:[ c语言中无符号和有符号的加法运算][深入理解]--[sky原创] 第一题 #include<stdio.h> int main() { unsigned int a=6; i ...
- python之使用位运算符实现加法运算
一哥们去笔试,回来后跟我说了一通面试题,其中有一道题让我很感兴趣: 不使用+号实现加法运算 刚听到后,一脸懵逼,不使用+号怎么算? 问了朋友他也没做这题,不过仔细想了下,不使用+号,是否可以使用其他运 ...
- RNN入门(4)利用LSTM实现整数加法运算
本文将介绍LSTM模型在实现整数加法方面的应用. 我们以0-255之间的整数加法为例,生成的结果在0到510之间.为了能利用深度学习模型模拟整数的加法运算,我们需要将输入的两个加数和输出的结果 ...
- C语言不使用加号实现加法运算的几种方法
今天看到<编码:隐匿在计算机软硬件背后的语言>的第十二章:二进制加法器.讲述了全加器,半加器的原理以及如何实现加法.实现加法时所使用的全加器,半加器中包含的所有逻辑门在C语言中都有相应的运 ...
- jQuery的加法运算.
jQuery的加法运算. 加法运算 ?想必大家听到这都会不屑了,加法运算这是多么简单的运算.然而有的时候在jQuery也让人挺头疼的. 常规的是: var num1 = 123; var num2=1 ...
- Ajax案例(使用ajax进行加法运算)
此案例功能实现了一边看视频一边进行加法运算,而加法运算时页面不会刷新请求 ajax代码: <script type="text/javascript" src="j ...
- Problem B: 大整数的加法运算
Problem B: 大整数的加法运算 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 112 Solved: 57[Submit][Status][W ...
- 简单的新手加法运算(基于Struts2)
软件151 王帅 在搭好框架的前提下,首先编写action.java文件: import com.opensymphony.xwork2.ActionSupport; public class Us ...
随机推荐
- linux分区,文件系统,目录结构概述
1.Linux中如何表示硬盘,分区 Linux内核读取光驱,硬盘等资源时均通过“设备文件”的形式进行,因此在linux系统中,将硬 盘和分区表示为不同的文件.具体表述形式如下: 硬盘:对于IDE接口的 ...
- android分割线
http://blog.csdn.net/dekunchenivan/article/details/6640804 在Android布局文件layout中设置水平分割线: <View ...
- swift http请求返回json数据和分析
1 AppDelegate.swift // // AppDelegate.swift // QQDemo // // Created by 赵超 on 14-6-21. // Copyright ( ...
- Linux下如何进行FTP安装与设置
1. 先用rpm -qa| grep vsftpd命令检查是否已经安装,如果ftp没有安装,使用yum -y install vsftpd 安装,(ubuntu 下使用apt-get instal ...
- css3系列教程--animation
Animation:动画animationshi css的动画效果.需要定义keyframe动画对象来实现.为了兼容苹果/chrome,firefox,ie每次定义需要添加-webkit-,-moz- ...
- Hadoop 安装(3) JDK 的安装
使用vsftp上传,JDK 和 Hadoop 到 Hadoop 用户目录. 安装JDK root 身份登录Slave4.Hadoop,在 /usr 下创建 "Java"文件夹,将j ...
- 安卓模拟器创建和使用SD卡的方法
安卓模拟器创建和使用SD卡的方法: 创建一个SD卡镜像文件 打开cmd,进入Android SDK安装路径下的tools目录下,输入如下命令:mksdcard 1024M sdcard.img 该命令 ...
- SQL查询练习题目
SQL查询练习题目 设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表(四)所示 ...
- 读书笔记-实用单元测试(英文版) Pragmatic Unit Testing in C# with NUnit
读书笔记-实用单元测试(英文版) Pragmatic Unit Testing in C# with NUnit Author: Andrew Hunt ,David Thomas with Matt ...
- 简述UITextField的属性和用法
0. enablesReturnKeyAutomatically 默认为No,如果设置为Yes,文本框中没有输入任何字符的话,右下角的返回按钮是disabled的. 1.borderStyle ...


