小编Mar*_*aux的帖子

C++:如何构建字符串/ char*

我是C++的新手.我想做一个char*,但我不知道怎么做.
在Java中就是这样:

int player = 0;
int cpu = 0;
String s = "You: " + player + " CPU: " + cpu;
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?我需要一个char*.

我专注于在字符串后粘贴整数.

c++ string char

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

如果MD5坏了,什么是更好的解决方案?

在阅读了主题为" MD5真的那么糟糕 "之后,我正在考虑一个更好的生成哈希的解决方案.是否有更好的解决方案Adler,CRC32SHA1?还是他们也坏了?

security hash cryptography

8
推荐指数
1
解决办法
2974
查看次数

游戏开发:你如何制作故事游戏?

我已经做了几个简单的游戏:进入一个级别,直到最后,继续到下一个级别.
但我仍然想知道"真正的"游戏开发者如何用故事创造游戏.

以下是故事游戏的一些内容(我想知道它们是如何制作的):

  • 玩家必须访问的一系列地点,并在那里那样做.
  • 你第一次看到一个人,他说你好.经过几个小时的游戏进度,他会给你一个提示去特定的地方.
  • 第一次走过桥梁时,第二次没有任何事情发生:桥梁下降,你将进入桥下的新位置.
  • 当您第一次进入新位置时,您将从村民等处获得大量信息.下次没有任何反应

最后几点是相同的三倍.
但是,我不认为他们有一个包含大量布尔值和整数的保存文件,用于保存以下内容:

  • 玩家第一次做了....
  • 玩家进入该位置的第十次
  • 球员谈了### 时该人
  • 等等

当我谈论故事游戏时,我想:

  • 塞尔达传说(系列赛的所有比赛)

这是一个级别级别游戏的几个例子:

  • 马里奥
  • 编织
  • 蜡笔物理学

谢谢

storyboard

8
推荐指数
1
解决办法
1264
查看次数

GameDevelopment:(Java&OpenGL)还是(C++&OpenGL&SDL)?

由于Java支持OpenGL,开发游戏的最佳选择是什么?

  • Java + OpenGL
  • C+++ SDL+OpenGL

我总是避免使用Java(当然是在游戏开发中)因为速度快.但是,我发现Java支持OpenGL.所以,我认为速度不再是问题......你应该选择什么?有评论吗?

由于我在Java和垃圾收集器方面的经验,Java对我来说会容易得多.

谢谢

c++ java opengl sdl

8
推荐指数
4
解决办法
1万
查看次数

Java编译器:停止抱怨死代码

出于测试目的,我经常开始在现有项目中键入一些代码.所以,我想要测试的代码出现在所有其他代码之前,如下所示:

public static void main(String[] args)
{
    char a = '%';
    System.out.println((int)a);
    // To know where '%' is located in the ASCII table.

    // But, of course, I don't want to start the whole project, so:
    return;

    // The real project starts here...
}
Run Code Online (Sandbox Code Playgroud)

但编译器抱怨return-statement,因为下面的"死代码".(在C++中,编译器服从程序员并简单地编译return语句)

为了防止编译器抱怨,我写了一个愚蠢的if陈述:

if (0 != 1) return;
Run Code Online (Sandbox Code Playgroud)

我讨厌它.为什么编译器不能按我要求做?是否有一些编译标志或注释或其他什么来解决我的问题?

谢谢

java compiler-construction return dead-code

8
推荐指数
1
解决办法
1171
查看次数

Java:如何从String创建RSA公钥

我有RSA公钥的字节数组.我在互联网上发现我可以使用以下代码创建一个真正的PublicKey对象:

PublicKey publicKey = 
    KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(bytes));
Run Code Online (Sandbox Code Playgroud)

但每次运行此代码时,我都会使用该密钥获取加密数据的另一个结果.我确定我要加密的数据总是相同的,表示密钥的字节数组也是如此.

这是正常的吗?

这是我的代码总是产生另一个输出:

byte[] keyBytes = Base64.decodeBase64(rsa_1024_public_key);
      // rsa_1024_public key is a constant String

Cipher c = Cipher.getInstance("RSA");

PublicKey publicKey =
   KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(keyBytes));

c.init(Cipher.ENCRYPT_MODE, publicKey);

return c.doFinal(password.getBytes());
Run Code Online (Sandbox Code Playgroud)

这可能是非对称加密算法的一部分?

谢谢.

java rsa encryption-asymmetric

8
推荐指数
1
解决办法
8335
查看次数

如何使用matlab从图像中删除划痕

比方说,我有这个图片:

在此输入图像描述

有黑色划痕,我想从我的图像中删除它.我知道这是噪音.我尝试过邻域滤波器和高斯滤波器,但没有成功.

matlab image image-processing

8
推荐指数
1
解决办法
6889
查看次数

在Android NDK下链接共享库

我成功编译库LibXtract到共享对象libxtract.so并想在第二个项目中使用.

在提及项目中,我尝试在简单的函数上编译它:

#include <com_androidnative1_NativeClass.h>
#include <android/log.h>
#include "libxtract.h"

JNIEXPORT void JNICALL Java_com_androidnative1_NativeClass_showText
(JNIEnv *env, jclass clazz)
{

    float mean = 0, vector[] = {.1, .2, .3, .4, -.5, -.4, -.3, -.2, -.1}, spectrum[10];
    int n, N = 9;
    float argf[4];

    argf[0] = 8000.f;
    argf[1] = XTRACT_MAGNITUDE_SPECTRUM;
    argf[2] = 0.f;
    argf[3] = 0.f;

    xtract[XTRACT_MEAN]((void *)&vector, N, 0, (void *)&mean);
    __android_log_print(ANDROID_LOG_DEBUG, "LIbXtract", "Button pushe2");
}
Run Code Online (Sandbox Code Playgroud)

我有扁平结构:

  • JNI/com_androidnative1_NativeClass.c
  • JNI/com_androidnative1_NativeClass.hjni/libxtract.h
  • 来自libxtract接口的jni/other*.h文件
  • JNI/Android.mk
  • JNI/Applicatoin.mk

library libxtract.so我放入了mainproject/lib文件夹

我的Android.mk文件如下所示:

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES := …
Run Code Online (Sandbox Code Playgroud)

android android-ndk

8
推荐指数
1
解决办法
3万
查看次数

为什么&&的优先级高于|| (JAVA)

    boolean a = true;
    boolean b = true;
    boolean c = false;

    System.out.println(a || b && c); // true
    System.out.println(b && c || a); // true
Run Code Online (Sandbox Code Playgroud)

我刚刚发现了我认为有点古怪的东西.为什么会这样,&&并且||处于不同的优先级?我原以为他们处于同一水平.以上说明了这一点.这两个陈述都是正确的,即使从左到右的评估对第一个给出错误而对第二个给出为真.

有谁知道这背后的原因?

(顺便说一下,我本来只是在这里使用了一大堆括号,但这是旧代码提出的问题)

java operator-precedence

8
推荐指数
2
解决办法
2395
查看次数

Java/C:OpenJDK原生tanh()实现错误?

我正在挖掘一些Java Math函数本机C源代码.特别是tanh(),我很想知道他们是如何实现那一个的.但是,我发现让我感到惊讶的是:

double tanh(double x) {
    ...
    if (ix < 0x40360000) {          /* |x|<22 */
        if (ix<0x3c800000)          /* |x|<2**-55 */
            return x*(one+x);       /* tanh(small) = small */
    ...
}
Run Code Online (Sandbox Code Playgroud)

正如评论所指出的那样,泰勒系列的tanh(x)大约为0,开头是:

tanh(x) = x - x^3/3 + ...
Run Code Online (Sandbox Code Playgroud)

那么为什么它们看起来像是这样实现的:

tanh(x) = x * (1 + x)
        = x + x^2
Run Code Online (Sandbox Code Playgroud)

这显然不是正确的扩展,甚至比仅仅使用更差的近似tanh(x) = x(更快),如此图所示:

在此输入图像描述

(粗线是顶部显示的那个.另一个灰色的是log(abs(x(1+x) - tanh(x))).Sigmoid当然是tanh(x)它本身.)

那么,这是实施中的一个错误,还是修复一些问题的黑客(比如数字问题,我真的无法想到)?请注意,我希望两种方法的结果完全相同,因为没有足够的mantisse位来实际执行加法1 + x,对于x <2 ^( - 55).

编辑:我将在撰写本文时包含指向代码版本的链接,以供将来参考,因为这可能会得到修复.

c java math floating-point ieee-754

8
推荐指数
1
解决办法
167
查看次数