二进制

这几天憋的无聊记录一下吧。

僤鯓⒐⒋嵵緔 提交于 2020-02-09 03:48:07
2019年11月,我决定学习计算机编程,以java语言为主。我就读于传统工科专业,没怎么接触过计算机相关概念与课程,我知道自学的过程不会顺利,甚至可能未入门放弃。就这样吧,于此记录我进行的这次学习之旅。 在看书过程中,涉及到网络编程这部分,我有诸多疑惑,就找了谢希仁的计算机网络这本书翻了翻,我就谈一谈我所理解的计算机网络吧。 计算机网络的基本模型是 TCP/IP模型 。它是构建在硬件之上,包括但不限于TCP/IP协议的一组认为制定的协议,其目的是为了方便在计算机上传输信息。该模型自顶向下主要分为应用层、传输层、网络层、数据链路层、物理层。 我们可以用数据来描述现实世界的信息,比如文字数据、音频数据、视频数据这是都是信息的载体。每一个基本数据单元,譬如作为基本数据单元的一个汉字,可以用一个数字与其一一对应,举例:0,代表“你”,1代表“我”,2代表“他”,3代表“她”……。世界上的文字总是有限的,而数字是无限的,因此可以用数字来对文字一一表示。再进一步,这些数字又可以化为二进制,因此我们可以用二进制来表示任何一个文字了。同理,其它数据单元,经过特定的方式,也都可以用二进制进行表示。二进制在物理上是方便表示的,比如电路的闭合可以处理二进制数据,矩形波可以传输二进制数据。。。。 来源: https://www.cnblogs.com/myy9199/p/12286072.html

十六进制转八进制(进制关系)

淺唱寂寞╮ 提交于 2020-02-09 01:10:43
Description 给定n个十六进制正整数,输出它们对应的八进制数。 Input 输入的第一行为一个正整数n (1<=n<=10)。 接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。 Output 输出n行,每行为输入对应的八进制正整数。 Sample Input 2 39 123ABC Sample Output 71 4435274 注意 输入的十六进制数不会有前导0,比如012A。 输出的八进制数也不能有前导0。 提示 先将十六进制数转换成某进制数,再由某进制数转换成八进制。 解题思路: 首先先讲一些相关知识点 二进制转十六进制 二进制数要转换为十六进制,就是以4位一段,分别转换为十六进制。 从右到左 4位一切,例如 100111110110101,左边不满4位的可以用0补满 0100,1111,1011,01012,所以前面的二进制转为十六进制为 4FB5。 同理 二进制转八进制 ,是以3位一段,分别转换成八进制。 十六进制转换成二进制 反过来,当看到 FD时,迅速将它转换为二进制数方法 先转换F: 看到F,需知道它是15,然后15如何用8421凑呢?应该是8 + 4 + 2 + 1,所以四位全为1 :1111。 接着转换 D: 看到D,知道它是13,13如何用8421凑呢?应该是:8 + 4

python之10 IO操作

梦想与她 提交于 2020-02-08 17:53:14
10.1 输入输出 Python提供了 input() 内置函数从标准输入读入一行文本,默认的标准输入是键盘。 print ( "请输入内容,按回车结束:" ) str = input ( ) print ( "用户输入的内容是:" , str ) 10.2 文件的读取 在python里面,可以使用open函数来打开文件,具体语法如下: open(filename, mode) filename:文件名,一般包括该文件所在的路径 mode 模式 如果读取时读取中文文本,需要在打开文件的时候使用encoding指定字符编码为utf-8 常见的打开文件的模式: 模式 描述 t 文本模式 (默认)。 x 写模式,新建一个文件,如果该文件已存在则会报错。 b 二进制模式。 + 打开一个文件进行更新(可读可写)。 r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。 r+ 打开一个文件用于读写。文件指针将会放在文件的开头。 rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。 w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 wb

力扣 OJ 461. 汉明距离

时光总嘲笑我的痴心妄想 提交于 2020-02-08 15:47:19
题目: 两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。 给出两个整数 x 和 y,计算它们之间的汉明距离。 注意: 0 ≤ x, y < 231. 示例: 输入: x = 1, y = 4 输出: 2 解释: 1 (0 0 0 1) 4 (0 1 0 0) ↑ ↑ 上面的箭头指出了对应二进制位不同的位置。 代码: class Solution { public: int hammingWeight(uint32_t n) { int ans = 0; while (n) { n ^= (n&(-n)); ans++; } return ans; } int hammingDistance(int x, int y) { return hammingWeight(x^y); } }; 来源: CSDN 作者: csuzhucong 链接: https://blog.csdn.net/nameofcsdn/article/details/104220900

WCF技术剖析之十九:深度剖析消息编码(Encoding)实现(上篇)

淺唱寂寞╮ 提交于 2020-02-08 09:33:07
[爱心链接: 拯救一个25岁身患急性白血病的女孩[内有苏州电视台经济频道《天天山海经》为此录制的节目视频(苏州话)] ]消息作为WCF进行通信的唯一媒介,最终需要通过写入传输层进行传递。而对消息进行传输的一个前提或者是一项必不可少的工作是对消息进行相应的编码。WCF提供了一系列可供选择的编码方式,它们分别在互操作和性能各具优势。在本篇文章我们将对各种编码方式进行消息的讨论。 从互操作性的角度来看,编码方法很大程度上决定了跨平台支持的能力。有的编码方式是平台无关的,有的则仅限于某种特定的平台。WCF提供了3种典型的编码方式:Binary、Text和MTOM。Binrary以二进制的方式进行消息的编码,但是仅限于.NET平台之间的通信;Text则提供平台无关的基于文本的编码方式。MTOM编码基于WS-MTOM规范,对于改善大规模二进制数据在SOAP消息的传输性能具有重大的意义,既然该编码方式遵循相应的规范,无疑这也是一种跨平台的编码方式。 在正式介绍WCF消息编码之前,我们很有必要了解如下几个实现编码的核心对象:XmlDictionary、XmlDictionary和XmlDIctionaryWriter。 一、XmlDictionary XmlDictionary,顾名思义,它是一个字典,它是从事编码和解码双方共享的一份“词汇表”。这样的说法可能有点抽象,我们不妨做一个类比。比如我说

231. 2的幂

僤鯓⒐⒋嵵緔 提交于 2020-02-08 09:16:13
ID: 231 TITLE: 2的幂 TAG: Java,Python,C++,C 概述 我们不打算在这里讨论时间复杂度为 O ( log ⁡ N ) \mathcal{O}(\log N) O ( lo g N ) 的解决方案。 class Solution ( object ) : def isPowerOfTwo ( self , n ) : if n == 0 : return False while n % 2 == 0 : n /= 2 return n == 1 class Solution { public boolean isPowerOfTwo ( int n ) { if ( n == 0 ) return false ; while ( n % 2 == 0 ) n /= 2 ; return n == 1 ; } } 该问题将通过位运算在 O ( 1 ) \mathcal{O}(1) O ( 1 ) 的时间复杂度解决,通过使用如下的按位技巧: 如何获取二进制中最右边的 1 : x & (-x) 。 如何将二进制中最右边的 1 设置为 0 : x & (x - 1) 。 以下的两种解决方案背后的思想都是一样的:2 的幂在二进制中是有一个 1 后跟一些 0 : 1 = ( 00000001 ) 2 1 = (0000 0001)_2 1 = ( 0 0 0 0

二进制的保护机制

六月ゝ 毕业季﹏ 提交于 2020-02-08 07:58:40
这里主要讲的是CTF中linux下的ELF二进制文件的保护机制。在linux中有一个脚本checksec命令可以查看当前二进制文件的保护机制。任意安装一款gdb插件都会把checksec脚本包含进来。 在gdb中执行: gdb> checksec test Canary : No NX : Yes PIE : No Fortify : No RelRO : Partial 直接在shell中执行: $ checksec test Arch: i386-32-little RELRO: Partial RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x8048000) 可以看到checksec可以查看当前二进制文件的指令架构以及采取了哪些保护机制。 1.Canary(栈保护) 这个选项表示栈保护功能有没有开启。 栈溢出保护是一种缓冲区溢出攻击缓解手段,当函数存在缓冲区溢出攻击漏洞时,攻击者可以覆盖栈上的返回地址来让shellcode能够得到执行。当启用栈保护后,函数开始执行的时候会先往栈里插入cookie信息,当函数真正返回的时候会验证cookie信息是否合法,如果不合法就停止程序运行。攻击者在覆盖返回地址的时候往往也会将cookie信息给覆盖掉,导致栈保护检查失败而阻止shellcode的执行

搞清字符集和字符编码

五迷三道 提交于 2020-02-08 07:08:44
本文将简述字符集,字符编码的概念。以及在遭遇乱码时的一些常用诊断技巧 背景:字符集和编码无疑是IT菜鸟甚至是各种大神的头痛问题。当遇到纷繁复杂的字符集,各种火星文和乱码时,问题的定位往往变得非常困难。本文就将会从原理方面对字符集和编码做个简单的科普介绍,同时也会介绍一些通用的乱码故障定位的方法以方便读者以后能够更从容的定位相关问题。在正式介绍之前,先做个小申明:如果你希望非常精确的理解各个名词的解释,那么可以查阅wikipedia。本文是博主通过自己理解消化后并转化成易懂浅显的表述后的介绍。 什么是字符集 在介绍字符集之前,我们先了解下为什么要有字符集。我们在计算机屏幕上看到的是实体化的文字,而在计算机存储介质中存放的实际是二进制的比特流。那么在这两者之间的转换规则就需要一个统一的标准,否则把我们的U盘插到老板的电脑上,文档就乱码了;小伙伴QQ上传过来的文件,在我们本地打开又乱码了。于是为了实现转换标准,各种字符集标准就出现了。简单的说字符集就规定了某个文字对应的二进制数字存放方式(编码)和某串二进制数值代表了哪个文字(解码)的转换关系。 那么为什么会有那么多字符集标准呢?这个问题实际非常容易回答。问问自己为什么我们的插头拿到英国就不能用了呢?为什么显示器同时有DVI,VGA,HDMI,DP这么多接口呢?很多规范和标准在最初制定时并不会意识到这将会是以后全球普适的准则

myql深度学习13-日志

空扰寡人 提交于 2020-02-08 06:24:44
1、启动慢查询日志,目的记录数据库超时的操作。 可以进行以下设置: ①慢查询日志默认是关闭的,需要开启慢查询 set global slow_query_log = on ②设置慢查询的界限时间,默认是10秒,现在设置为5秒 set global long_query_time = 5 ③设置慢查询的日志的存放位置 set global slow_query_log_file = 'D:slow_query.log' ④查看慢查询的设置状况 show variables like 'like_%' ⑤对于日志,可以直接用文档打开,或是使用mysqldumpslow的工具 2、二进制日志文件可以用来记录所有的用户对数据库的操作,当数据库发生意外的时候可以通过此文件查看一定时间内的用户操作,结合数据库备份技术可以再现用户操作,使数据恢复。 ①查看二进制日志是否开启 show variables like 'log_bin' ②需要在修改mysql的配置文件,C:\ProgramData\MySQL\MySQL Server 5.7\my.ini log_bin=D:\logbin #表示生成日志的位置 expire_logs_days = 10 #默认是0,表示不会自动删除,现在这是10天后删除日志 max_binlog_size = 100M #设置单个文件的大小

字符集和字符编码

狂风中的少年 提交于 2020-02-08 06:04:03
http://os.51cto.com/art/201503/467929.htm 什么是字符集 在介绍字符集之前,我们先了解下为什么要有字符集。我们在计算机屏幕上看到的是实体化的文字,而在计算机存储介质中存放的实际是二进制的比特流。那 么在这两者之间的转换规则就需要一个统一的标准,否则把我们的U盘插到老板的电脑上,文档就乱码了;小伙伴QQ上传过来的文件,在我们本地打开又乱码了。 于是为了实现转换标准,各种字符集标准就出现了。简单的说字符集就规定了某个文字对应的二进制数字存放方式(编码)和某串二进制数值代表了哪个文字(解 码)的转换关系。 那么为什么会有那么多字符集标准呢?这个问题实际非常容易回答。问问自己为什么我们的插头拿到英国就不能用了呢?为什么显示器同时有 DVI,VGA,HDMI,DP这么多接口呢?很多规范和标准在最初制定时并不会意识到这将会是以后全球普适的准则,或者处于组织本身利益就想从本质上区 别于现有标准。于是,就产生了那么多具有相同效果但又不相互兼容的标准了。 说了那么多我们来看一个实际例子,下面就是屌这个字在各种编码下的十六进制和二进制编码结果,怎么样有没有一种很屌的感觉? 字符集 16进制编码 对应的二进制数据 UTF-8 0xE5B18C 1110 0101 1011 0001 1000 1100 UTF-16 0x5C4C 1011 1000 1001