1变成0,0变成1 ---- 异或:^ : (相同的就为0,不同的为1) 真值表; 1 ^ 0 1 1 ^ 1 0 0 ^ 0 0 0 ^ 1 1 ---- 很久之前的知识,最近使用居然忘了
而在linux中则称为x86_64,即x86架构的64位扩展。 有关x86_64的详细描述可翻阅《深入理解计算机系统》一书。...2、系统 系统同样可分为32位与64位。在x86_64架构的CPU出现之前,PC的操作系统都是用32位,例如windows 2000,xp,当时的unix,linux等。...查看linux系统是32位还是64位的方法:执行shell命令“arch”,显示为x86_64表示当前系统为64位,显示为i386,i486等表示系统是32位的。...另外在64位系统中,为了兼容数量众多的老的应用程序,系统都会增加一个虚拟层,用来翻译x86指令,这样32位程序也可以在64位系统中运行(windows和linux都支持)。...4、linux发行版与内核 在linux发行版中,一般会针对不同的架构发布不同的安装光盘,以debian为例,可用于PC的就有i386和amd64这两个版本。
思路 方法1:位运算 ^运算符:0与任何数ch做^运算都是ch 相同字符异或为0 因为t中的字符是s + ch,所以s与t做异或剩下的就是ch class Solution { public:...0; for(char c : s + t) { res ^= c; } return res; } }; 方法2:哈希表...把s中所有元素存到一个哈希表mpS里,t中所有元素存到一个哈希表mpT里 然后比较两个哈希表每个元素个数,不一样的就是题目所求 char findTheDifference(string s, string
路由表用于决定数据包从哪个网口发出,其主要判断依据是目标IP地址 Linux路由表其实有2个主要概念:按顺序走路由策略,在路由策略对应的路由表中匹配规则 路由策略(rule) 路由表(table) ?...查看所有的路由策略,32766那个策略最有用,对应的main路由表也是默认展示的路由表 ip rule list 0: from all lookup local 32766: from...all lookup main 32767: from all lookup default 查看main路由表 ip route list table main default via 10.105.0.1
1 概述 Linux下的程序大多充当服务器的角色,在这种情况下,随着负载量和功能的增加,服务器所使用内存必然也随之增加,然而32位系统固有的4GB虚拟地址空间限制,在如今已是非常突出的问题了;另一个需要改进的地方是日期...,在Linux中,日期是使用32位整数来表示的,该值所表示的是从1970年1月1日至今所经过的秒数,这在2038年就会失效,但是在64位系统中,日期是使用64位整数表示的,基本上不用担心其会失效。...16 16 16 16 int 32 64 32 32 16 long 64 64 32 32 32 long long 64 64 64 64 64 pointer 64 64 64 32 32 表2.1...而Linux 64位系统采用LP64数据模型,因此在long和pointer上,都有着和32位系统不同的长度。...字节 结构大小为32字节 表2.2 注意,在我自己所测试的32位系统上,编译器并没有对double型数据进行对齐,尽管它是一个64位的对象,这是因为硬件会将其当成两个32位的对象进行处理。
SSDt表与ShadowSSDT表的查看....一丶SSDT表 1.什么是SSDT表 SSDT表示系统服务表,我们ring3调用的很多函数都会调用这个SSDT表 2.查看步骤 1.使用 x命令 前提需要加载好符号. x nt!...首先可以看选中的位置.这个是SSDT表的起始地址. 后面*0x11C 是这个表的个数 我们可以使用dds命令来查看这个表....二丶ShadowSSDT表 1.什么是ShadowSSDT表 ring3的所有GUI会调用的到这个表格中. 2.如何查看....不管是SSDT还是shodowSSDT表.都是有这个表的大小. 在32位下.函数地址是4个字节. 所以用表的大小 / 4 = 函数个数. ? 这个表中的函数都是做绘图用的.
从系统查看 1.1 uname -a 命令 [root@qs-dmm-rh2 ~]# uname -a Linux qs-dmm-rh2 2.6.18-194.el5 #1 SMP Tue Mar 16...21:52:43 EDT 2010 i686 i686 i386 GNU/Linux [root@qs-xezf-db2 ~]# uname -a Linux qs-xezf-db2 2.6.18-194...~]# file /bin/ls /bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9..., dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped [root@qs-xezf-db2 ~]# file /bin...linked (uses shared libs), for GNU/Linux 2.6.9, stripped 1.3 getconf LONG_BIT 命令 [root@qs-dmm-rh2 ~]
上一篇文章我们学习了Linux权限相关的内容,这篇文章,我们再来学习一个知识点——粘滞位。 1....背景 那为了让大家更容易理解粘滞位的概念,首先我们要来了解一点背景知识: 就是我们在使用Linux的时候呢,有时候就可能需要一些共享目录,即被所有普通用户共享,用来保存普通用户产生的临时数据。...那在Linux中,这个共享目录一般是由root提供的,只要root把权限放开,那其他普通用户就可以以other的身份去访问这个目录了。 2....显然是不合理的,那为了解决这个不科学的问题,Linux就引入了粘滞位的概念。(因此我们也应该知道,粘滞位只能给目录添加) 3....因此呢,Linux就引入了粘滞位权限去解决这个问题。 谁可以删除 那我们设置了粘滞位之后呢,就可以阻止在共享目录中的一些普通用户去删除其它用户的文件。那这样普通用户删不了,谁可以删呢?
AL/AX/EAX ) XADD 先交换再累加.( 结果在第一个操作数里 ) XLAT 字节查表转换. ── BX 指向一张 256 字节的表的起点, AL 为表的索引值...PUSHD 32位标志入栈. POPD 32位标志出栈....JS 符号位为 “1” 时转移. 3>循环控制指令(短转移) LOOP CX不为零时循环. ...STC 置进位标志位. CLC 清进位标志位. CMC 进位标志取反. STD 置方向标志位. ...CLD 清方向标志位. STI 置中断允许位. CLI 清中断允许位.
Linux基于位运算的权限控制 Linux权限控制是基于位运算实现的。...在Linux权限系统中,读、写、执行权限分别对应三个状态位: 读 写 执行 ==> 二进制 ==> 十进制 0 0 1 ==> 001 ==> 1 0 1 0 ==> 010 ==> 2 1 0 0 =...2 待增加的权限,写 用户现有的权限码为0,为其增加“读取”、“写入”两种权限,即4,2 使用或运算结果如下 0|4=4 //增加读取权限 4|2=6 //增加写入权限 实现权限的减少(非运算) 位运算同样可以实现用户权限的减少...优点和缺陷 位运算的运算对象是二进制的位,速度快,效率高,而且节省存储空间,位运算做权限控制又相当地灵活。...但是,位运算也有很大的局限,因为在32位计算机上,位移不能超过32次,这就要求权限数量不超过32种。
1.Linux权限的概念 权限的概念: 什么是权限?...就是通过一定的条件,拦住一部分人,给另一部分人权利,来访问某种资源 Linux下有两种用户:超级用户(root)、普通用户 超级用户:可以再linux系统下做任何事情,不受限制 普通用户:在linux下做有限的事情...,通过第一个属性列来区分 Linux不区分文件类型,但是Linux上的工具可能区分!!!...y [litao@localhost ~]$ exit logout 为了解决这个不科学的问题, Linux引入了粘滞位的概念 5.2 粘滞位 [root@localhost ~]# chmod +...y rm: 无法删除"/home/abc.c": 不允许的操作 当一个目录被设置为"粘滞位"(用chmod +t),则该目录下的文件只能由 超级管理员删除 该目录的所有者删除 该文件的所有者删除
[root@aoi ~]# cat 99 #!/bin/bash for i in `seq 1 9` do for n in `seq 1 9` do ech...
在Linux世界中,clone()系统调用通过复制调用进程创建一个新进程。新进程称为子进程,原始进程称为父进程。clone()系统调用有几个选项,允许我们控制父进程和子进程之间资源的共享。...Cloneflags是一个用于指定创建 Linux 命名空间的标志位, 是 Linux 内核中用于进程创建的参数之一,它用于控制新进程如何与父进程共享资源。...CLONE_FILES:使新进程共享打开的文件描述符表,但不共享文件描述符的状态(例如文件偏移量)。 CLONE_FS:使新进程共享文件系统信息(例如当前工作目录和根目录)。...CLONE_FILES CLONE_FILES标志将使新进程共享与父进程相同的文件描述符表,这意味着它们将共享打开的文件。子进程可以在没有另一个打开文件描述符的情况下访问它们。...docker的实现原理中,一些基础的功能也是用这些标志位来实现,下面是一些用 Go 语言实现 Cloneflags 标志位的示例代码: package main import ( "fmt"
Linux下mysql可以通过“ALTER TABLE 旧表名 RENAME [TO] 新表名;”语句来修改表名;还可以通过配置my.cnf文件,修改“lower_case_table_names”选项的值为...“1”来设置表名不区分大小写。...Linux下mysql设置表名 在 MySQL 中,可以使用 ALTER TABLE 语句来实现表名的修改。...,因此修改名称后的表和修改名称前的表的结构是相同的。...用户可以使用 DESC 命令查看修改后的表结构, Linux下Mysql设置表名不区分大小写 Linux下的MySQL默认是区分表名大小写的 通过如下设置,可以让MySQL不区分表名大小写: 1、用root
我们都知道对于windows应用来说,注册表是很重要的部分。所有的com组件和部分应用程序的运行都会依赖于注册表。 ---- 那么问题来了。我们的软件进程有x86和x64两个互不兼容的版本。...而软件的注册表位置(比如com组件的clsid)是固定的。那么对于这种情况该怎么确保找到对应版本的软件或dll路径呢?...不同版本的注册表处理 对于这种情况,windows提供了在64位系统提供了对32位软件的注册表项目支持。...里面涵盖了同名软件的32位版本的相同注册表路径。只是区别在于对应的dll或者exe的物理路径换成了32位版本的路径。 ?...多版本软件注册表注意点 确认软件或者dll版本是否是64位和32位不兼容的 安装的电脑是否是64位电脑 在64位电脑下需要同时写64位(不带Wow6432Node节点)和32位版本(带Wow6432Node
最近ADI悄咪咪的发布了一个测量的硬件,居然是一个六位半的便携仪器,太帅了。可惜没有开源,也不知道日后会不会开源。...六位半精度意味着测量值可显示的第一位数字仅限于正负号和0/1,称之为½位,而其它位数则可显示0~9,称之为一位。...因此,六位半数字电压测量模块的显示数值范围在-1999999至1999999之间,若需测量极小电压值,只需将电压测量模块调至低电压档位,以六位半的精度通常能测到100nV级别的电压信号。...其实六位半的表倒也不是难做的不行,个人DIY的有个问题那就是,长时稳定性不好,就是随着越用越久以及温度的变换,会导致测量的误差越来越大,而这些商用的是可以保证一个长时稳定性的。...还有一个问题就是高精度的电压基准,和电流源,就是源表的作用。 总结有:低噪声、小信号放大、长期稳定性,还是高精度电压基准、低温漂特性,以及良好的上位机。
一 注册表编程 二 注册表简介 2.1 ring3注册表 ?...在内核中我们的注册表只有两个 key 内核 对应ring3 \\Registry\\Machine\\software HKEY_LOCAL_MACHINE \\Registry\\User\\ HKEY_USERS...2.2 重启删除原理 重启删除,其实信息是放在注册表中的。...这次重启删除则会放到上面那个注册表中。...三丶注册表API操作 3.1 Reg操作API 操作Key的函数 API 作用 ZwCreateKey 创建或者打开Key ZwEnumerateKey 枚举key ZwQueryKey 查询Key
我们经过上小章节讲了Linux的部分进阶命令,我们接下来一章节来讲讲Linux防火墙。...防火墙-什么是防火墙 Linux防火墙-4表5链 Linux防火墙-filter表(本章节) Linux防火墙-nat表 Linux防火墙-常用命令 Linux防火墙-案例(一) Linux防火墙-案例...(二) Linux防火墙-小结 上一小节,我们介绍了Linux防火墙的基本表链情况,今天就来重点介绍filter这个表及对应的链。...filter filter 表是 Linux 网络过滤框架 netfilter 中的一个关键部分,主要用于实现数据包过滤功能,以下是对其重点介绍: 一、关联链及作用位置 filter 表主要与 INPUT...Linux 系统防火墙的核心组成部分。
查看linux机器是32位还是64位的方法: 方法一: file /sbin/init 或者 file /bin/ls 显示结果:如果显示 64-bit 则为64位;如果显示 32-bit 则为32位;...64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux...2.6.18, stripped 方法二: uname -a 显示结果:x86_64表示64位机器,i686表示32位机器 Linux joshua317 2.6.32-431.29.2.el6.x86..._64 #1 SMP Tue Sep 9 21:36:05 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux 方法三:也是看linux是32位还是64位最简单的方法: getconf...LONG_BIT 显示结果:64表示64位机器,32表示32位机器 [root@joshua317 etc]# getconf LONG_BIT 64
我们知道,32 位程序在读取注册表的时候,会自动将注册表的路径映射到 32 位路径下,即在 Wow6432Node 子节点下。但是 64 位程序不会映射到 32 位路径下。...那么 64 位程序如何读取到 32 位程序写入的注册表路径呢?...---- Wow6432Node 对于 32 位程序,读取注册表路径的时候,会读到 Wow6432Node 节点下的项: 这张图读取的就是前面截图中的节点。...如何在 64 位程序中读取 32 位注册表路径 前面我们的例子代码是这样的: 1 var value = RegistryHive.LocalMachine.Read(@"SOFTWARE\Walterlv...那么如何在 64 位进程中读取 32 位注册表路径呢? 方法是在打开注册表项的时候,传入 RegistryView.Registry32。
领取专属 10元无门槛券
手把手带您无忧上云