12.8 - 每日一题 - 408

本文涵盖了数据结构中的存储密度计算,以有序链表为例,解析了存储密度的计算公式。同时讲解了Web服务中SOAP作为通信协议的重要性。还讨论了Cache-主存系统的地址映像方式,指出直接映像的块冲突概率最高。最后,介绍了补码表示法,给出了-25在8位寄存器中的补码表示。
摘要由CSDN通过智能技术生成

每日一句:羡慕别人得到的,不如珍惜自己 拥有的。

数据结构

1.设有n个元素的集合,采用带头结点有序链表来实现,设集合的元素占8个字节,链接指针占2个字节,该集合的存储密度为 (北京邮电大学 2013)

A、0.8

B、n/(n+1)

C、0.8n/(n+1)

D、0.8(n+1)/n

答案:C

解析:题目要求计算集合的存储密度首先需要知道什么是存储密度:存储密度= (结点数据本身所占的存储量)/(结点结构所占的存储总量)由题目可知:元素占8n字节,指针占2n字节,头结点不存元素,但有10字节,所以有8n/(8n+2n+10)=0.8n/(n+1)。

拓展:

计算机网络

2.在Web Service中,客户与服务之间的标准通信协议是 。(中山大学 2010年)

A.简单对象访问协议
B.超文本传输协议
C.统一注册与发现协议
D.远程对象访问协议

答案:A

解析:在WebService中,各个实体之间的通信都是基于SOAP(Simple Object Access Protocol,简单对象访问协议)来实现的,可以说SOAP是整个Web服务的通信基础。

拓展:

Web services要使用两种技术:

  1. XML标准通用标记语言下的一个子集):XML是在web上传送结构化数据的伟大方式,Web services要以一种可靠的自动的方式操作数据,HTML标准通用标记语言下的一个应用)不会满足要求,而XML可以使web services十分方便的处理数据,它的内容与表示的分离十分理想;
  2. SOAP:SOAP使用XML消息调用远程方法,这样web services可以通过HTTP协议的post和get方法与远程机器交互,而且,SOAP更加健壮和灵活易用;

其他像UDDI和WSDL技术与XML和SOAP技术紧密结合用于服务发现。

操作系统

3.在Cache-主存系统中,块冲突概率最高的地址映像方式是 (武汉大学 2014年)

A. 全相联映像

B. 直接映像

C. 组相联映像

D. 段相联映像

答案:B

解析:按Cache地址映像的块冲突概率从高到低的顺序是直接映像、组相联映像、全相联映像。

直接映像是每个主存字块地址映像到Cache中的一个指定地址的方式,硬件简单,地址变换速度快,不需要替换算法,但块冲突概率高,Cache利用率不高。

全相联映像是每个主存地址映像到Cache任何一个地址,块冲突概率低,只有Cache块全部满了才会冲突,但实现复杂,适合小容量采用。

组相联映像是直接映像和全相联映像的折衷,将存储空间分组,组间直接映像,组内全相联映像。

计算机组成原理

4.假设寄存器为8位,用补码形式存储机器数,包括一位符号位,那么十进制数-25在寄存器表示为: (杭州电子科技大学 2012年)

A. 67H

B. 99H

C. E6H

D. E7H

答案:D

解析:25=0001 1001B(就是将25写成二进制形式),
-25 即首位为符号位,1001 1001B(原码)
要求补码,先求反码,即除符号位取反得 1110 0110B(反码)
补码为反码+1,则补码为1110 0111B(补码),换成十进制为E7H。

当前所有题目均来自@王道在线公众号,其中对部分题目解析进行了补充说明,
如有问题或错漏烦请评论告知,感谢支持!

03-17
### 如何在Android中使用SVG路径数据并解析其属性 #### 1. **了解SVG路径数据** SVG(Scalable Vector Graphics)是一种基于XML的矢量图像格式,用于描述二维图形及其行为。`pathData` 是 SVG 中定义形状的核心部分之一,它通过一系列命令和参数来描绘复杂的几何结构[^3]。 例如,在以下 SVG 文件中: ```xml <svg width="100%" height="100%" version="1.1" xmlns="http://www.w3.org/2000/svg"> <circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red"/> </svg> ``` - `cx`, `cy`: 定义圆心坐标。 - `r`: 圆半径大小。 - `stroke`: 边框颜色。 - `fill`: 填充颜色。 这些属性可以直接映射到 Android 的 `VectorDrawable` 资源文件中的对应字段。 --- #### 2. **将SVG转换为VectorDrawable** 由于某些复杂 SVG 图形可能无法被 Android Studio 自动导入,因此需要手动将其转换为兼容的 `VectorDrawable` 格式[^2]。以下是具体过程: ##### (a) 使用工具进行转换 可以借助在线工具或脚本完成此操作。例如,Google 提供了一个名为 [SVGGer](https://inloop.github.io/svgger/) 的工具,能够自动将标准 SVG 文件转换为 Android 支持的 XML 格式。 ##### (b) 手动调整生成的XML 假设原始 SVG 包含如下路径数据: ```xml <path d="M10,10 h80 v80 h-80 z" /> ``` 对应的 `VectorDrawable` 可能会变成: ```xml <vector xmlns:android="http://schemas.android.com/apk/res/android" android:viewportWidth="100" android:viewportHeight="100" android:width="24dp" android:height="24dp"> <path android:pathData="M10,10 h80 v80 h-80 z" android:fillType="evenOdd" android:strokeColor="#FF000000" android:strokeWidth="2" android:fillColor="#FFFF0000" /> </vector> ``` 其中的关键属性解释如下: - `android:viewportWidth` 和 `android:viewportHeight`: 表示视口尺寸,通常与原 SVG 的宽度度一致。 - `android:pathData`: 对应于 SVG 的 `<path>` 数据。 - `android:fillColor`: 设置填充颜色。 - `android:strokeColor` 和 `android:strokeWidth`: 控制边框的颜色和粗细。 --- #### 3. **配置Gradle以支持VectorDrawable** 为了确保项目正确处理矢量图形资源,需在项目的 `build.gradle` 文件中添加必要的设置[^4]: 如果使用的 Gradle 插件版本于 2.0,则需要显式禁用默认的光栅化逻辑: ```gradle android { defaultConfig { generatedDensities = [] } aaptOptions { additionalParameters "--no-version-vectors" } } ``` 对于更版本的插件,默认情况下已启用对矢量图形的支持,无需额外修改。 --- #### 4. **动态加载VectorDrawable** 除了静态声明外,还可以通过代码方式动态加载 `VectorDrawable` 并应用自定义样式。例如: ```java Context context = getApplicationContext(); Resources resources = context.getResources(); // 加载VectorDrawable对象 int drawableId = R.drawable.my_vector; Drawable vectorDrawable = ContextCompat.getDrawable(context, drawableId); // 应用至ImageView ImageView imageView = findViewById(R.id.image_view); imageView.setImageDrawable(vectorDrawable); ``` 上述代码片段展示了如何从资源目录读取矢量图形,并绑定到 UI 组件上显示。 --- #### 5. **动画效果扩展** 若希望进一步增强用户体验,可利用 `AnimatedVectorDrawable` 实现平滑过渡或其他视觉特效。例如,创建一个简单的旋转动画: ```xml <objectAnimator android:duration="1000" android:propertyName="rotation" android:valueFrom="0" android:valueTo="360" /> ``` 随后关联目标 `View` 即可触发相应变化。 --- ### 总结 综上所述,要成功解析并运用 SVG 路径数据作为 Android 矢量图形的一部分,需经历以下几个阶段:理解基础语法 -> 工具辅助转化 -> 配置环境适配 -> 动态渲染呈现。每一步都紧密依赖前序成果,最终达成效开发目的。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值