Ⅰ 设有10阶对称矩阵a,采用压缩存储方式(以行序为主序存储,则a11的地址为1),则a85的地址为。
首先,压缩存储对于对称矩阵来说,等于是存对角线的右上半加对角线的元素,或者是左下半加对角线的元素,其他位置不存储。
这题是使用行优先存储,即先存a11,再a12,再a22,再a13,再a23,再a33,以此类推,一直到a85,所以a85的位置计算为:(1+2+3+4+5+6+7)+5=33,选择答案B。
对称矩阵(Symmetric Matrices)是指元素以主对角线为对称轴对应相等的矩阵。在线性代数中,对称矩阵是一个方形矩阵,其转置矩阵和自身相等。
(1)压缩存储的地址计算扩展阅读
LAPACK是由美国国家科学基金等资助开发的着名公开软件。LAPACK包含了求解科学与工程计算中最常见的数值线性代数问题,如求解线性方程组、线性最小二乘问题、特征值问题和奇异值问题等。
LAPACK提供了丰富的工具函式,可用于诸如解多元线性方程式、线性系统方程组的最小平方解、计算特征向量、用于计算矩阵QR分解的Householder转换、以及奇异值分解等问题。 在NetLib亦提供了API经简化的Fortran 95版本的LAPACK95。LAPACK以BSD授权的方法释出。
Ⅱ 计算机内存储器的容量为1KB,其最后一个字节的地址是多少怎么算的
十六进制的地址是03FF
二进制地址01111111111
十六进制换算十进制 安全展开 按十六进制格式位数乘以16的X位次方
十六进制换算二进制 除法 除以二得余数倒过来念
十六进制换算八进制 未知 我也不会算
八进制换算二进制 除法 除以二得余数倒过来念
八进制换算十进制 安全展开 按八进制格式位数乘以8的X位次方
八进制换算十六进制 未知 我也不会算
十进制换算二进制 除法 除以二得余数倒过来念
十进制换算八进制 除法 除以八得余数倒过来念
十进制换算十六进制 除法 除以十六得余数倒过来念
二进制换算十进制 安全展开 按二进制格式位数乘以二的X位次方
二进制换算八进制 从右到左,三位一组,不够补0 ,3个数分别对应4 2 1的进行乘法然后象加
二进制换算十六进制 从右到左,四位一组,不够补0 ,4个数分别对应8 4 2 1的进行乘法然后象加
安全展开的含义:
比如 二进制 “1101100”
从右起"0"到左尾部"1"止 倒过来排位:
1101100 ←二进制数
6543210 ←排位方法
例如二进制换算十进制的算法:
1 * 26 + 1 * 25 + 0 * 24 + 1 * 23 + 1 * 22 + 0 * 21 + 0 * 20
↑ ↑
进制 后面的数是
次方,也就
是2的6次方
2的6次方等于2*2=4*2=8*2=16*2=32*2=64.....
等于:
64+32+0+8+4+0+0
=108
二进制换算八进制十六进制最简单的方法:
如二进制的“10110111011”:
换八进制时,从右到左,三位一组,不够补0,即成了:
010 110 111 011
然后每组中的3个数分别对应4、2、1的状态,然后将为状态为1的相加,如:
010 = 2
110 = 4+2 = 6
111 = 4+2+1 = 7
011 = 2+1 = 3
结果为:2673
而换十六进制时其实也类似,只要每组4位,分别对应8、4、2、1就行了,如分解为:
0101 1011 1011
运算为:
0101 = 4+1 = 5
1011 = 8+2+1 = 11(由于10为A,所以11即B)
1011 = 8+2+1 = 11(由于10为A,所以11即B)
结果为:5BB
二进制数转换为十进制数
二进制数第0位的权值是2的0次方,第1位的权值是2的1次方……
所以,设有一个二进制数:0110 0100,转换为10进制为:
下面是竖式:
0110 0100 换算成 十进制
第0位 0 * 20 = 0
第1位 0 * 21 = 0
第2位 1 * 22 = 4
第3位 0 * 23 = 0
第4位 0 * 24 = 0
第5位 1 * 25 = 32
第6位 1 * 26 = 64
第7位 0 * 27 = 0 +
---------------------------
100
用横式计算为:
0 * 20 + 0 * 21 + 1 * 22 + 1 * 23 + 0 * 24 + 1 * 25 + 1 * 26 + 0 * 27 = 100
0乘以多少都是0,所以我们也可以直接跳过值为0的位:
1 * 22 + 1 * 23 + 1 * 25 + 1 * 26 = 100
八进制数转换为十进制数
八进制就是逢8进1。
八进制数采用 0~7这八数来表达一个数。
八进制数第0位的权值为8的0次方,第1位权值为8的1次方,第2位权值为8的2次方……
所以,设有一个八进制数:1507,转换为十进制为:
用竖式表示:
1507换算成十进制。
第0位 7 * 80 = 7
第1位 0 * 81 = 0
第2位 5 * 82 = 320
第3位 1 * 83 = 512 +
--------------------------
839
同样,我们也可以用横式直接计算:
7 * 80 + 0 * 81 + 5 * 82 + 1 * 83 = 839
结果是,八进制数 1507 转换成十进制数为 839
十六进制数转换成十进制数
2进制,用两个阿拉伯数字:0、1;
8进制,用八个阿拉伯数字:0、1、2、3、4、5、6、7;
10进制,用十个阿拉伯数字:0到9;
16进制,用十六个阿拉伯数字……等等,阿拉伯人或说是印度人,只发明了10个数字啊?
16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这五个字母来分别表示10,11,12,13,14,15。字母不区分大小写。
十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方……
所以,在第N(N从0开始)位上,如果是是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X * 16的N次方。
假设有一个十六进数 2AF5, 那么如何换算成10进制呢?
用竖式计算:
2AF5换算成10进制:
第0位: 5 * 160 = 5
第1位: F * 161 = 240
第2位: A * 162 = 2560
第3位: 2 * 163 = 8192 +
-------------------------------------
10997
直接计算就是:
5 * 160 + F * 161 + A * 162 + 2 * 163 = 10997
(别忘了,在上面的计算中,A表示10,而F表示15)
现在可以看出,所有进制换算成10进制,关键在于各自的权值不同。
假设有人问你,十进数 1234 为什么是 一千二百三十四?你尽可以给他这么一个算式:
1234 = 1 * 103 + 2 * 102 + 3 * 101 + 4 * 100
进制表
10 8 16 2
0 0 0 0
1 1 1 1
2 2 2 10
3 3 3 11
4 4 4 100
5 5 5 101
6 6 6 110
7 7 7 111
8 10 8 1000
9 11 9 1001
10 12 A 1010
11 13 B 1011
12 14 C 1100
13 15 D 1101
14 16 E 1110
15 17 F 1111
16 20 10 10000
17 21 11 10001
18 22 12 10010
19 23 13 10011
20 24 14 10100
21 25 15 10101
22 26 16 10110
23 27 17 10111
24 30 18 11000
25 31 19 11001
26 32 1A 11010
27 33 1B 11011
28 34 1C 11100
29 35 1D 11101
30 36 1E 11110
31 37 1F 11111
32 40 20 100000
.
.
.
.
47 57 2F 101111
48 60 30 110000
Ⅲ 数据结构 对称矩阵压缩存储题目,求详细解答。
我画了部分出来(图右面的数字9请忽略),a45位置是蓝色区域,由每一行红点位置开始,按照绿色箭头的方向开始数,第一行有10个,第二行9个,第三行8个,第四行7个,第五行来到蓝色区域有2个。因为a00有基地址,所以a45的地址应该为0(这个是a00存储地址)+(10+9+8+7+2-1)(注意要减1)X1=35所以答案应该是35才对吧。
Ⅳ 地址范围的存储空间怎么计算
4FFFH-1000H+1/1024=16KB
Ⅳ 在微机中,若主存储器的地址编号为0000H到7FFFH,则该存储器容量为多少怎么算的
一个地址可存储1Byte,地址从0000H到7FFFH,那容量就是7FFFH+1 Byte;
转换为10进制就是32767+1=32768Byte,1024Byte=1KB,所以也就是32KB。
Ⅵ 数据结构对称矩阵的压缩存储求数据地址
对对称阵进行压缩存取是将对称元素只存一个,并将数据存储在一维数组中
首先来确定a[i][j]在b[k]中的i,j与k的关系
首先是判定i与j的关系,
如果是下三角存储,则分一下两种情况
1、如果i<j,
则交换i与j的值,将上三角的位衫梁清置值变换到下三角位置渣颤
2、如果i>=j,则不用执行操作直接走下面的流程
此时,i表示行坐标,j表示了坐标i之前有i行,即有1+2+...+i
=
(i+1)*i/2,在i标识的第i+1行有j+1个元素,由或前此可以确定k的值为(i+1)*i/2+j+1
=
k+1
由此可得k
=
(i+1)*i/2+j
由此可以的,a[3][6],
i=3,
j=6,
由于i<j,
交换得i=6,
j=3
由此
k
=
(6+1)*6/2+3
=
24
又由于&b[0]
=
1000
每个元素占两个字节,
则b[24]
=
1000+2*24
=
1048
由此便得到a[3][6]的地址为1048
Ⅶ 根据内存空间地址怎么计算其存储空间
这里的20KB是个概数,不是精确值; 首先进行十六进制减法:7000H-2001H=4FFFH 4FFFH=(20479)D,也就是十进制数的20479 注意,单位都是B,字节 20479B=19.999KB=20KB 1KB=1024B
Ⅷ 对于n阶对称矩阵A,请写出计算任一矩阵元素的压缩存储地址
算i<=j的情形
aij先算如果不压缩的地址(i-1)n+j,再算压缩后,压缩后相当于少了一个下三角矩阵,大小是1+2+。。。+j-1=(j-1)j/2;所以地址是(i-1)n-(j-3)j/2;
i>j的情形转换为i<j的地址,也就是算aji。