小编pez*_*ode的帖子

目前哪些Windows GUI框架值得学习?

我打算编写一个Windows应用程序来帮助自己完成一些探索性测试任务(笔记记录,数据生成,缺陷记录),并且我在选择框架/语言的早期阶段陷入困境.我唯一的经验是网络开发,从我所看到的,WinForms,WPF,Silverlight,Swing等都同时过时和蓬勃发展取决于你问的对象.

虽然我的主要目标是创建应用程序,但显然我希望在这样做的同时学习一些有用的东西,而不是通过在工作中的项目中永远不会看到的东西来学习技能.人们建议学习哪些Java或C#框架?

c# java windows user-interface

16
推荐指数
2
解决办法
4万
查看次数

80位浮点和次正规数

我试图将80位扩展精度浮点数(在缓冲区中)转换为double.缓冲区基本上包含x87寄存器的内容.

这个问题帮助我开始,因为我并不熟悉IEEE标准.无论如何,我很难找到80位格式的次正规(或非规范化)数字的有用信息.我所知道的是,与float32或float64不同,它在尾数中没有隐藏位(没有隐含的1.0加法),所以知道数字是否规范化的一种方法是检查尾数中的最高位是否设置.这让我有以下问题:

根据维基百科告诉我的情况,float32和float64表示一个次正规数,其(偏差)指数为0,尾数为非零尾数.

  • 这在80位浮点数中告诉我什么?
  • 尾数<1.0的80位浮点数是否可以具有非零指数?
  • 或者,指数为0的80位浮点数甚至可以使尾数> = 1.0?

编辑:我想这个问题归结为:

我可以期望FPU清理x87寄存器中的指数和最高尾数位吗?

如果不是,转换结果应该是什么类型的数字?在这种情况下,我应该完全忽略指数吗?还是qNaN?

编辑:

我阅读了英特尔手册(英特尔®64和IA-32架构软件开发人员手册,第1卷:基础架构)中的FPU部分,这比我担心的要少.事实证明,未定义以下值:

  • 指数== 0 +最高位设置的尾数
  • 指数!= 0 +没有最高位设置的尾数

它没有提到这些值是否可以在野外出现,也不会在内部转换.所以我实际上除了Ollydbg并手动设置x87寄存器中的位.我制作了ST(0)来包含指数中设置的所有位和尾数为0.然后我让它执行

FSTP QWORD [ESP]
FLD QWORD [ESP]
Run Code Online (Sandbox Code Playgroud)

存储的值[ESP]转换为信令NaN.之后FLD,ST(0)载着一个安静的NaN.

我猜这回答了我的问题.我接受了J-16 SDiZ的解决方案,因为它是最直接的解决方案(虽然它没有明确解释一些更精细的细节).

无论如何,案件解决了.谢谢大家.

c++ floating-point ieee-754 x87

7
推荐指数
1
解决办法
1903
查看次数

Deduce非类型模板参数

是否可以从模板函数参数中推导出非类型模板参数?

考虑这个简单的模板:

template <int N> constexpr int factorial()
{
        return N * factorial<N - 1>();
}

template <> constexpr int factorial<0>()
{
        return 1;
}

template <> constexpr int factorial<1>()
{
        return 1;
}
Run Code Online (Sandbox Code Playgroud)

我希望能够改变,factorial以便我可以这样称呼它:

factorial(5);
Run Code Online (Sandbox Code Playgroud)

让编译器在编译时计算出N的值.这可能吗?也许有一些花哨的C++ 11添加?

c++ templates c++11 template-argument-deduction

7
推荐指数
2
解决办法
2243
查看次数

Android 数据绑定到片段

是否可以让数据绑定给我一个对活动布局内片段的引用?

我的活动在 FrameLayout 中有一个片段,我得到这样的数据绑定:

fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        val binding: ActivityUxBinding = DataBindingUtil.setContentView(this, R.layout.activity_ux)
Run Code Online (Sandbox Code Playgroud)

自动生成的 ActivityUxBinding 不包含片段的成员,所以我仍然必须这样做:

arFragment = supportFragmentManager.findFragmentById(R.id.ux_fragment) as ArFragment
Run Code Online (Sandbox Code Playgroud)

有没有办法获得布局中指定类型的成员 uxFragment ?

作为参考,活动的布局:

<layout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <fragment android:name="edu.htw.cd.ar.objectdetect.sceneform.ArFragmentWithoutInstructions"
            android:id="@+id/ux_fragment"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
        <com.google.android.material.floatingactionbutton.FloatingActionButton
            android:id="@+id/search_fab"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom|end"
            android:layout_margin="16dp"
            app:srcCompat="@drawable/ic_search"
            app:elevation="6dp" /> <!-- https://material.io/design/environment/elevation.html -->
    </FrameLayout>
</layout>
Run Code Online (Sandbox Code Playgroud)

android android-fragments kotlin android-databinding

6
推荐指数
0
解决办法
623
查看次数