二进制代码

php接收二进制文件转换成图片

泄露秘密 提交于 2020-03-24 06:58:45
$GLOBALS['HTTP_RAW_POST_DATA'] 最近在做Flash在线裁剪图片 生成图片的东西。 通过Flash POST 图片的二进制数据给php,由php生成图片保存。 开始想到用$_POST来接受。后来发现行不通。 查阅了很多资料 明白了所以然,这里做一个笔记: 于PHP默认只识别application/x-www.form-urlencoded标准的数据类型。 因此,对型如text/xml 或者 soap 或者 application/octet-stream 之类的内容无法解析,如果用$_POST数组来接收就会失败! 故保留原型,交给$GLOBALS['HTTP_RAW_POST_DATA'] 来接收。 另外还有一项 php://input 也可以实现此这个功能 php://input 允许读取 POST 的原始数据。和 $HTTP_RAW_POST_DATA 比起来,它给内存带来的压力较小,并且不需要任何特殊的 php.ini 设置。php://input和 $HTTP_RAW_POST_DATA 不能用于 enctype="multipart/form-data"。 我在Flash中使用JPGEncoder把BitMapData转成二进制,然后post给php php页面代码如下: <?php $filename="teststream.jpg";/

Java的基本数据类型

最后都变了- 提交于 2020-03-22 16:10:46
变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。 内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。 因此,通过定义不同类型的变量,可以在内存中储存整数、小数或者字符。 Java的两大数据类型: 内置数据类型 引用数据类型 内置数据类型 Java语言提供了八种基本类型。六种数字类型(四个整数型(默认是int 型),两个浮点型(默认是double 型)),一种字符类型,还有一种布尔型。 byte: byte数据类型是8位、有符号的,以二进制补码表示的整数;(256个数字),占1字节 最小值是-128(-2^7); 最大值是127(2^7-1); 默认值是0; byte类型用在大型数组中节约空间,主要代替整数,因为byte变量占用的空间只有int类型的四分之一; 例子:byte a = 100,byte b = -50。 short: short数据类型是16位、有符号的以二进制补码表示的整数,占2字节 最小值是-32768(-2^15); 最大值是32767(2^15 - 1); Short数据类型也可以像byte那样节省空间。一个short变量是int型变量所占空间的二分之一; 默认值是0; 例子:short s = 1000,short r = -20000。 int: int数据类型是32位

计算机基础

你离开我真会死。 提交于 2020-03-22 09:40:08
一,int类型在内存是如何存储的? 数据类型  占用字节数  取值范围  int     4byte   -2^31 ~ 2^31-1 unsigned int  4byte   0 ~2^32 1,占用的比特位数 int占用4个字节,每个字节有8个比特位,所以有32个 0-1 的二进制位数。注意:int类型有正负号,unsigned int 没有正负,所以int要用一位来标识正负 2,符号的表示方法 int类型占用的比特位中,左起第一个位(最高位)就是符号位。0表示正数,1表示负数。其余后面31是数值位。 3,数字0怎么表示? 3.1,因为有了正负数,那么就会有 +0 和 -0 。(注意:0有了两种表示:+0,-0)   +0的表示方法:0000 0000 0000 0000 0000 0000   -0的表示方法:-2^31   0就用 +0 的表示方法 3.2,正数部分 2^31-1 ,之所以要减一,就是因为数字0占用了 +0 。负数不需要表示0,-0 就用来表示 -2^31 3.3,int类型的数字 -1 ,在内存中32个比特位上该如何表示? 10000000 00000000 00000001 左边第一个1表示负号,后面31位表示数值部分“1”。----> 然而,并不是这样的 二,补码 计算机中的符号数有三种表示方法:原码,反码,补码

求N!的二进制表示中最低位1的位置?

邮差的信 提交于 2020-03-18 08:38:02
解法一:如果n!最末尾位0,则右移一位得到商,如果末尾是1,则不能被2整除,是奇数,这个问题等同与求n!中质有质因数2的个数。。最后结果再加1 代码: #include<iostream> using namespace std; int main() { int n,sum; sum=0; cin>>n; while(n) { n>>=1; sum+=n; } cout<<sum+1<<endl; system("pause"); return 0; } 解法二:N减去N的二进制表示中1的数目,然后再加1。。这也是一个规律。。 代码: #include<iostream> using namespace std; int getNum(int n) { if(n==0) return 0; int count=0; while(n) { n&=(n-1); count++; } return count; } int main() { int n,sum; sum=0; cin>>n; cout<<n-getNum(n)+1<<endl; system("pause"); return 0; } 来源: https://www.cnblogs.com/sooner/archive/2013/04/02/2996208.html

二进制与内存

China☆狼群 提交于 2020-03-17 07:41:24
文章目录 1 进制的概念 2 十六进制 3 二进制 4 变量的内存地址 1 进制的概念 十进制 在日常生活中,通常使用10进制进行计数 基础符号: 0 1 2 3 4 5 6 7 8 9 比如: 2 表示 9 表示 11 表示 十进制 10进制计数时,逢十进位 0 1 2 3 … 7 8 9 10 11 12 13 … 17 18 19 20 21 22 23 … 27 28 29 30 31 32 33 … 37 38 39 一共10个符号,数到9就完了,就必须采用进位的手段来计更大的数 十进制 对于一个10进制的数,每一位有不同的 权重 例如,2 6 2 每一位代表的是: 2 x 100 6 x 10 2 x 1 其中,262 = 2 x 10*2 + 6 x 10 1+ 2 x 10 0 八进制 类比一下,可以得到八进制的规律 基础符号 0 1 2 3 4 5 6 7 计数:( 逢八进位 ) 0 1 2 … 6 7 10 11 12 … 16 17 20 21 22 … 26 27 八进制数 2 3 6 = 2 x 8*2 + 3 x 8 + 6 二进制 类比一下,可以得到八进制的规律 基础符号 0 1 计数:( 逢二进位 ) 二进制数 110 = 1 x 2*2 + 1 x 2 + 0 0 (0) 1 (1) 10 (2) 11 (3) 100 (4) 101 (5)

【算法技巧】位运算装逼指南

江枫思渺然 提交于 2020-03-17 03:03:13
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下 if( n % 2) == 01 // n 是个奇数 }   如果把 n 以二进制的形式展示的话,其实我们只需要判断最后一个二进制位是 1 还是 0 就行了,如果是 1 的话,代表是奇数,如果是 0 则代表是偶数,所以采用位运算的方式的话,代码如下: if(n & 1 == 1){ // n 是个奇数。 }    有人可能会说,我们写成 n % 2 的形式,编译器也会自动帮我们优化成位运算啊,这个确实,有些编译器确实会自动帮我们优化。但是,我们自己能够采用位运算的形式写出来,当然更好了。别人看到你的代码,我靠,牛逼啊。无形中还能装下逼,是不是。当然,时间效率也快很多,不信你去测试测试。 2、交换两个数 交换两个数相信很多人天天写过,我也相信你每次都会使用一个额外来变量来辅助交换,例如,我们要交换 x 与 y 值,传统代码如下: int tmp = x; x = y; y = tmp;  

Python之网络爬虫

跟風遠走 提交于 2020-03-12 21:17:47
一、读取网页 1、使用自带的 urllib模块 : 引入自带的模块urllib 使用文件里面的urlopen模块 (1)发送的是get请求: from urllib.request import urlopen url='http://www.nnzhp.cn/archives/423' res=urlopen(url).read() #打开url,获取url的网页内容 发送的是get请求 print(res.decode()) #将结果返回的二进制类型转为字符串类型 (2)发送的是post请求: from urllib.parse import urlencode #由于不能直接传字典,要传二进制格式,所以导入该模块 url='http://api.nnzhp.cn/api/user/login' data={'username':'niuhanyang','passwd':'aA123456'} data=urlencode(data) #先将字典拼接成k-v格式 print(data) #结果:username=niuhanyang&passwd=aA123456 res=urlopen(url,data.encode()).read() #再将k-v格式转成二进制 print(res.decode()) #将返回的二进制转成字符串再返回 import json d=json

mysql三种备份方式

萝らか妹 提交于 2020-03-10 19:37:14
一、备份的目的 做灾难恢复:对损坏的数据进行恢复和还原 需求改变:因需求改变而需要把数据还原到改变以前 测试:测试新功能是否可用 二、备份需要考虑的问题 可以容忍丢失多长时间的数据; 恢复数据要在多长时间内完; 恢复的时候是否需要持续提供服务; 恢复的对象,是整个库,多个表,还是单个库,单个表。 三、备份的类型 1、根据 是否需要数据库离线 冷备 (cold backup):需要关mysql服务,读写请求均不允许状态下进行; 温备 (warm backup): 服务在线,但仅支持读请求,不允许写请求; 热备 (hot backup):备份的同时,业务不受影响。 注: 1、这种类型的备份,取决于业务的需求,而不是备份工具 2、 MyISAM不支持热备,InnoDB支持热备 ,但是需要专门的工具 2、根据要 备份的数据集合的范围 完全备份:full backup,备份全部字符集。 增量备份: incremental backup 上次完全备份或增量备份以来改变了的数据,不能单独使用,要借助完全备份,备份的频率取决于数据的更新频率。 差异备份:differential backup 上次完全备份以来改变了的数据。 建议的恢复策略: 完全+增量+二进制日志 完全+差异+二进制日志 3、 根据备份数据或文件 物理备份:直接备份数据文件 优点: 备份和恢复操作都比较简单,能够跨mysql的版本

算法训练 二进制数数

时间秒杀一切 提交于 2020-03-10 13:29:53
/** 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述   给定L,R。统计[L,R]区间内的所有数在二进制下包含的“1”的个数之和。   如5的二进制为101,包含2个“1”。 输入格式   第一行包含2个数L,R 输出格式   一个数S,表示[L,R]区间内的所有数在二进制下包含的“1”的个数之和。 样例输入 2 3 样例输出 3 数据规模和约定   L<=R<=100000; */ /** 这种写法有缺陷: 1.输入1到9亿的运算时间要15074ms;更大的数要的时间更久 2.不能计算负数。 思路逻辑: 1.因为要算的是区间,做一个循环得到区间里的数,然后计算这些数的二进制1的个数,最后把每个数的二进制1的个数加起来输出 2.判断一个数的二进制中1的个数采用位运算(x&(x-1)是最优的,每次将给定的数的最右边的1变位0):采用给定的数与给定的数-1逻辑与操作,把给定的数的最后边的1变成0,操作一次,count自增一次,知道给定的数的1全部变为0,退出循环。 有兴趣的可以试试改下代码,或者试下其他思路; */ import java . util . Scanner ; public class Test { public static void main ( String [ ] args ) { long start = System .

久违地回来,第一周数电作业

て烟熏妆下的殇ゞ 提交于 2020-03-10 13:12:56
本作业3.11前交。 1.有623支铅笔,如果用二进制代码表示,最少需几位?若改用八进制或十六进制,则最少各需几位?写出表示结果。 2.将下列二进制数转换为等值的十进制数: (1)(110.101)2; (2)1001.0101)2. 3.将下列的十进制数转换为等值的二进制数、八进制数和十六进制数,要求二进制数小数点后保留四位有效数字。 (1)188.875;(2)174.06。 4.用八位二进制补码表示下列十进制数: (1)+47;(2)-65;(3)-128。 5.用二进制补码运算计算下列各式(提示:所用补码的有效位数应足够表示代数和的最大绝对值)。 (1)9+13;(2)23-11;(3)9-15;(4)-16-15。 来源: https://www.cnblogs.com/SBSOI/p/12454852.html