深入理解计算机系统
codingriver
这个作者很懒,什么都没留下…
展开
-
多字节大小端说明
参照深入理解计算机系统假设变量int x = 0x01234567 假设x的指针地址为0x100,则在内存中数据存储为:0x1000x1010x1020x103大端法(big endian)01234567小端法(little endian)67452301可以这么记:指向地址位是数字低位为小端,指向地址位是数字高位为大端判断本机当前...原创 2018-09-26 22:06:05 · 365 阅读 · 0 评论 -
深入理解计算机系统第二章部分练习题
2.11 数组翻转#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include<windows.h>void swap(int * x, int *y){ *y = *x^*y; *x = *x^*y; *y = *x^*y;}void reverse_array(int a[], int...原创 2018-09-26 23:32:55 · 524 阅读 · 0 评论 -
为什么用补码,为什么有符号单字节最小是-128
1.为什么用补码先说明同余的概念:同余运算及其基本性质关于同余负数问题,可以用负数,但是得想清楚为啥怎样直白地理解补码原理?参考上面文章基本能明白了为什么用补码,为了用加法器能计算负数;总结上面的结论:那为什么正负数要隔开呢? ———为了制造出类似原码的符号位,这样补码转换原码的时候,就可以区分转换了。正数不变,负数取反加一。为什么是取反加一呢? ———根据...原创 2018-09-27 19:32:03 · 3635 阅读 · 3 评论 -
struct union数据对齐
数据对齐几年前看过,都忘了,看深入理解计算机系统又看到了,今天回顾下做下记录参考文章 struct union数据对齐和sizeof大小这篇文章只说明struct结构体和union联合体的对齐1 基本数据类型的数据对齐基本类型的数据对齐值是其本身的大小。2 struct/class的自身对齐值。对于结构体和类的自身对齐值是所有成员中最大的自身对齐值。结构体和类的对齐规则:先将数据...原创 2018-10-13 12:18:30 · 2283 阅读 · 3 评论 -
位运算实现加减乘除
参考文章用基本位运算实现加减乘除using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace BseOperate{ class Program { //加减乘...原创 2018-10-08 17:51:21 · 1188 阅读 · 0 评论 -
浮点数的内存存储和运算
本文以单精度的内存存储来说明的0X01 浮点数的内存存储IEEE 754浮点数标准规定的浮点数结构:SPM公式偏移量1823(-1)S*2(P-127)*1.M12711152(-1)S*2(P-1023)*1.M1023S是符号位,P是阶码,M是尾数。二进制存储结构(单精度浮点数):S(第31位)P((30位到23位)...原创 2018-09-29 15:28:36 · 1051 阅读 · 0 评论 -
位操作符介绍
参考文章C++:位操作基础篇之位操作全面总结0X01位操作基础基本的位操作符有与、或、异或、取反、左移、右移这6种,它们的运算规则如下所示:符号描述运算规则 by MoreWindows&与两个位都为1时,结果才为1|或两个位都为0时,结果才为0^异或两个位相同为0,相异为1~取...原创 2018-10-08 18:22:12 · 4813 阅读 · 0 评论