转:http://toutiao.com/a4280977370/ [解法一] 可以举一个八位的二进制例子来进行分析.对于二进制操作,我们知道,除以一个 2,原来的数字将会减少一个0.如果除的过程中有余,那么就表示当前位置有一个1.以 10 100 010 为例:第一次除以 2 时,商为1 010 001,余为0.第二次除以 2 时,商为101 000,余为1.因此,可以考虑利用整型数据除法的特点,通过相除和判断余数的值来进行分析.于是有了如下的代码. 代码清单 2-1 [解法二]使用位操作 前…
#include "limits.h" #include "math.h" int abs(int number) { int const mask = number >> (sizeof(int) * CHAR_BIT - 1); return (number + mask) ^ mask; }   这是一个求绝对值的函数,看了它不禁想起负数在计算机中的构成.   负数在计算机中是按补码存储的,如何给定一个int型数,输出它的补码呢?以及给一个数的补码…
1. 题目描述 输入一个整数,输出该数二进制表示中1的个数.其中负数用补码表示. 2. 思路和方法 使用移位(<<)和 “| & !”操作来实现.1的二进制是:前面都是0,最后一位为1.每次向左移位一下,使得flag的二进制表示中始终只有一个位为1,每次与n做位与操作,这样就相当于逐个检测n的每一位是否是1.unsigned int flag = 1;  例如:5&1 = 101 & 001,1前面补0. 3. C++核心代码 3.1 位运算 class Solutio…
看C++primer Plus看的无聊,第一次做Leetcode的练习,本来想做二维向量的,结果始终通不过,查了原因,必须用一维的... 一维的答案: class Solution {  public:   vector<int> twoSum(vector<int>& nums, int target)   {    int cout = nums.size();  //得到向量的大小    vector<int>ret;  //定义向量      for (…
想知道某一位是否为1,只需和当前位对应的2的幂进行按位与运算即可. 如下示例,可以知道第6位是1,同理可知其他位是否为1,累加就能得到1的个数: 10001001 00000000 int cnt = 0; while (x) { cnt += x&1; x >>= 1; }…
可能表示一个字节,也可能表示一个字.主要由指令中另一个计算对象决定.如al表示一个字节.ax就表示一个字. 这个区别主要体现在循环中,偏移地址的循环变量是加1还是加2,al是偏移地址加1,ax是偏移地址加2. [idata],[bx]表示的是偏移地址. [idata],[bx]是有区别的.在代码中mov ax [idata];会把[idata]看作idata,而不会看作地址. mov ax ds:[idata];会把[idata]看作偏移地址,段地址为ds. mov ax [bx];则把[bx]…
编写一个程序,从键盘输入三个整数,求三个整数中的最小值. 关键:声明变量temp   与各数值比较. package Exam01; import java.util.Scanner; public class Topic03 { public static void main(String[] args) { // TODO Auto-generated method stubint a,b,c; //输入 Scanner input = new Scanner(System.in); Sys…
相信经常用VC的朋友对屏幕输出的一大堆“烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫烫”不会陌生,但是也许会很奇怪,为什么会出现“烫”字呢?莫非改程序导致系统运行缓慢,发热过高???非也!下面让我解释一下吧,有错误的地方请指正:在上一篇文章中,我们逆向了Debug模式下的一个C程序,发现栈区开辟的存储空间都是使用0CCCCCCCCh来填充4字节单位的,也就是说,栈区开辟的存取局部变量的空间的每一个字节都被0xCC填充了.(为什么用0xCC,这个是int 3h的机器码,下断点用的)两个0xCC合起…
首先要从Innodb怎么看待磁盘物理空间说起   一块原生的(Raw)物理磁盘,可以把他看成一个字节一个字节单元组成的物理存储介质   如果要在这块原生物理空间中插入一条记录,不能单单只插入数据,还需要插入一些管理记录的信息,这些管理信息被称为记录头,这里假设是5字节(compact类型记录确实记录头占用5字节,简单通俗起见,可以忽略这段括号内的解释) 然后在记录头后面插入列,假如要插入的记录的各个列是:   其中 num 是主键 (int类型)   name 是 varchar 类型的   s…
页面设计工作和python代码分离,所以我们引用模板来实现这个功能. 一.模板实例 下面是一个模板的实例: [python]<html><head><title>Ordering notice</title></head><body><h1>Ordering notice</h1><p>Dear {{ person_name }},</p><p>Thanks for plac…