C语言的设计具备了汇编语言的运算能力,它支持全部的位操作符。 位操作符是对字节或字中的位进行测试、置位或移位处理,在对微处理器的编程中,特别适合对寄存器、I/O端口进行操作。 6种位操作符: (1) & :按位“与”——仅当两个操作数为1时,结果为1,否则为0。如:1000 1000 & 1000 ...
分类:
编程语言 时间:
2016-04-03 00:21:59
阅读次数:
239
原题: 有一个如下的结构体: struct A{ long a1; short a2; int a3; int *a4; }; 请问在64位编译器下用sizeof(struct A)计算出的大小是多少? 答案:24 本题知识点:C/C++ 预备知识:基本类型占用字节 在32位操作系统和64位操作系统 ...
分类:
编程语言 时间:
2016-04-02 22:49:34
阅读次数:
231
一、运算结果标志位 1、进位标志CF(Carry Flag) 进位标志CF主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0。 使用该标志位的情况有:多字(字节)数的加减运算,无符号数的大小比较运算,移位操作,字(字节)之间移位,专门改变CF值 ...
分类:
其他好文 时间:
2016-04-02 16:04:28
阅读次数:
118
1. 问题描述: 在Virtual Box上安装 Ubuntu 系统时出现错误(如题),VIrtual Box 上也没有64位操作系统的选项 2.原因分析: (1) 可能 BIOS 的 Virtualization Technology 并未Enable (2)虚拟机与 Windows 自带的Hyp ...
分类:
其他好文 时间:
2016-03-30 17:58:22
阅读次数:
151
在计算机中所有数据都是以二进制的形式储存的。位运算其实就是直接对在内存中的二进制数据进行操作,因此处理数据的速度非常快。在实际编程中,如果能巧妙运用位操作,完全可以达到四两拨千斤的效果,正因为位操作的这些优点,所以位操作在各大IT公司的笔试面试中一直是个热点问题。
位操作基础
基本的位操作符有与、或、异或、取反、左移、右移这6种,它们的运算规则如下所示:
注意以下几点:
...
分类:
编程语言 时间:
2016-03-30 13:07:57
阅读次数:
232
1)IPv4地址是一个32位的二进制数,通常被分割位4个“8位二进制数”,为了方便,通常使用“点分十进制”的形式表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数,另外,IP地址也可以使用一个3的整数T表示,根据点分十进制中的a,b,c,d,计算T的方法就是: 2)那 ...
分类:
其他好文 时间:
2016-03-28 18:32:09
阅读次数:
155
在32位操作系统和64位操作系统上,基本数据类型分别占多少字节呢? 32位操作系统: char : 1 int :4 short : 2 unsigned int : 4 long : 4 unsigned long : 4 long long : 8 float : 4 double : 8 指针
分类:
编程语言 时间:
2016-03-20 16:17:12
阅读次数:
201
进位标志CF主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,那么,其值为1,否则其值为0。 使用该标志位的情况有:多字(字节)数的加减运算,无符号数的大小比较运算,移位操作,字(字节)之间移位,专门改变CF值的指令等。 奇偶标志PF用于反映运算结果中“1”的个数的奇偶性
分类:
其他好文 时间:
2016-03-19 17:54:37
阅读次数:
651
给定一个整数,输出这个整数二进制表示中的1的个数。例如,给定整数7,其中二进制表示为111,因此输出结果为3. 该问题可以采用位操作来执行完成。 思路:首先,判断这个数的最后一位是否为1,如果为1 ,则计数器加 1,然后右移丢掉最后一位。循环执行该操作,直到这个数等于0 为止。
分类:
其他好文 时间:
2016-03-19 12:59:55
阅读次数:
166
这两天看了《编码的奥秘》里面的二进制加法机及其后面的减法功能的实现,就用Python实现了一个类似功能的加法器出来。 先说一下整体的思想。 由于操作数都是二进制,所以计算简单了许多。首先,运算需要逐位操作,两个二进制数相加使用AndGate即可,但是重点在于要区分出来“和”和“进位”,分别使用Xor
分类:
编程语言 时间:
2016-03-18 21:48:35
阅读次数:
3845