小编Dav*_*son的帖子

这个程序的输出是如何产生的?

我有一段用C编写的代码,其中执行了一些指针算法.我想知道输出是怎么来的?

#include <stdio.h>  
int main()
{
    char arr[] = "gookmforgookm";
    char *ptr1 = arr;
    char *ptr2 = ptr1 + 3;
    printf ("ptr2 - ptr1 = %d\n", ptr2 - ptr1);
    printf ("(int*)ptr2 - (int*) ptr1 = %d",  (int*)ptr2 - (int*)ptr1);
    getchar();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出如下:

ptr2 - ptr1 = 3  
(int*)ptr2 - (int*) ptr1 = 0
Run Code Online (Sandbox Code Playgroud)

c

6
推荐指数
1
解决办法
1071
查看次数

pyserial 错误 - 无法打开端口

我在 stackoverflow 中看到了在 Python 3.3 的 USB 端口中使用 pyserial 的简单代码,但我无法让它在我新安装的 pyserial 2.7 [在 Windows 7,64 位,带有 3 个 USB 端口] 上工作。pyserial 的安装很顺利,我可以毫无错误地导入,并且 Pyscripter IDE 中可以识别方法,这增强了对良好安装的信心,但是:

代码精简到产生错误的要点是:

import serial
def main():
  ser = serial.Serial(port='COM2')
  ser.close()

if __name__ == '__main__':
   main
Run Code Online (Sandbox Code Playgroud)

由此我收到一个对话框,其中包含错误“SerialException:无法打开端口“COM2”:FileNotFoundError(2,'系统找不到指定的文件。',无,2)”

回溯指出:

*** Remote Interpreter Reinitialized  ***
>>>
Traceback (most recent call last):
  File "<string>", line 420, in run_nodebug
  File "C:\Python33\Lib\site-packages\scanport2.py", line 19, in <module>
main()
  File "C:\Python33\Lib\site-packages\scanport2.py", line 15, in main
ser = serial.Serial(port='COM2')
  File "C:\Python33\Lib\site-packages\serial\serialwin32.py", line 38, in __init__ …
Run Code Online (Sandbox Code Playgroud)

python usb pyserial

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

为什么Ruby 1.9中具有相同字节和编码的两个字符串不相同?

在Ruby 1.9.2中,我发现了一种方法,可以使两个字符串具有相同的字节,相同的编码,并且相同,但它们length返回的字符不同且不同[].

这是一个错误吗?如果它不是一个bug,那么我想完全理解它.Ruby 1.9.2 String对象中存储了哪些信息,允许这两个字符串表现不同?

下面是重现此行为的代码.开头的注释#=>向您展示了我从这个脚本获得的输出,括号中的单词告诉您我对该输出的判断.

#!/usr/bin/ruby1.9
# coding: utf-8
string1 = "\xC2\xA2"       # A well-behaved string with one character (¢)
string2 = "".concat(0xA2)  # A bizarre string very similar to string1.
p    string1.bytes.to_a    #=> [194, 162]  (good)
p    string2.bytes.to_a    #=> [194, 162]  (good)
puts string1.encoding.name #=> UTF-8  (good)
puts string2.encoding.name #=> UTF-8  (good)
puts string1 == string2    #=> true   (good)
puts string1.length        #=> 1      (good)
puts string2.length        #=> 2      (weird!)
p    string1[0]            #=> …
Run Code Online (Sandbox Code Playgroud)

ruby string encoding ruby-1.9

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

Whois查询适用于telnet但不适用于netcat

我正在尝试编写一个高级的whois客户端,所以我一直在尝试使用Arch Linux中的netcat(nc)向whois服务器发送命令.例如,这很好用:

$ echo domain google.com | nc whois.crsnic.net 43
# => nc outputs whois data for google.com
Run Code Online (Sandbox Code Playgroud)

但是,处理后缀的whois服务器.br.comwhois.centralnic.net,而该服务器似乎不能与netcat一起使用.当我给它任何查询时,它似乎只是关闭连接而没有响应:

$ echo foobar | nc whois.centralnic.net 43
# => No output from nc.
Run Code Online (Sandbox Code Playgroud)

我使用telnet成功地进行了相同的查询:

$ telnet whois.centralnic.net 43
Trying 193.105.170.136...
Connected to whois.centralnic.net.
Escape character is '^]'.
foobar
DOMAIN NOT FOUND
Connection closed by foreign host.
Run Code Online (Sandbox Code Playgroud)

那么什么可能使服务器对telnet的行为与netcat不同?

我想也许这是一个时间问题,所以我没有成功尝试:

$ { sleep 4; echo foobar; sleep 4; } | nc whois.centralnic.net 43
# => …
Run Code Online (Sandbox Code Playgroud)

whois netcat

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

OpenSSL:获取椭圆曲线上的随机点

我有一个初始化的椭圆曲线(EC_GROUP).有没有办法得到仿射坐标的随机点?

这就是我定义曲线的方式:

BN_CTX *ctx;
EC_GROUP *curve;
BIGNUM *a, *b, *p, *order, *x, *y, *z;
EC_POINT *generator;

/* Binary data for the curve parameters */
unsigned char a_bin[28] =
        {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
        0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0xFF,0xFF,0xFF,
        0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE};
unsigned char b_bin[28] =
        {0xB4,0x05,0x0A,0x85,0x0C,0x04,0xB3,0xAB,0xF5,0x41,
        0x32,0x56,0x50,0x44,0xB0,0xB7,0xD7,0xBF,0xD8,0xBA,
        0x27,0x0B,0x39,0x43,0x23,0x55,0xFF,0xB4};
unsigned char p_bin[28] =
        {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
        0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01};
unsigned char order_bin[28] =
        {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
        0xFF,0xFF,0xFF,0xFF,0x16,0xA2,0xE0,0xB8,0xF0,0x3E,
        0x13,0xDD,0x29,0x45,0x5C,0x5C,0x2A,0x3D };
unsigned char x_bin[28] =
        {0xB7,0x0E,0x0C,0xBD,0x6B,0xB4,0xBF,0x7F,0x32,0x13,
        0x90,0xB9,0x4A,0x03,0xC1,0xD3,0x56,0xC2,0x11,0x22,
        0x34,0x32,0x80,0xD6,0x11,0x5C,0x1D,0x21};
unsigned char y_bin[28] =
        {0xbd,0x37,0x63,0x88,0xb5,0xf7,0x23,0xfb,0x4c,0x22,
        0xdf,0xe6,0xcd,0x43,0x75,0xa0,0x5a,0x07,0x47,0x64,
        0x44,0xd5,0x81,0x99,0x85,0x00,0x7e,0x34};

unsigned char z_bin[28] = 
        {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
        0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
        0x0,0x0,0x0};

/* Set up the BN_CTX */ …
Run Code Online (Sandbox Code Playgroud)

openssl elliptic-curve

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

如何将两个字符串转换为单个字典?

我正在尝试将两个字符串值转换为单个dict

string1='red blue white'
string2= 'first second third'
dict={'red':first,'blue':second.'white':third}
Run Code Online (Sandbox Code Playgroud)

但在这里我不能使用循环!! 没有循环还有其他方法吗?帮我!!谢谢

python string dictionary

2
推荐指数
1
解决办法
828
查看次数

Ruby何时使用方法!vs返回值

在Ruby中工作时,我常常发现自己在使用方法!或使用普通方法之间发生冲突,将值重新赋值.我不确定何时使用什么.例如,我有2个哈希值(h1和h2),我想合并它们并将值存储在哈希值h1中,现在我应该使用 h1.merge!(h2) 还是 h1 = h1.merge(h2)

这两者有什么区别吗?

ruby

2
推荐指数
1
解决办法
106
查看次数

编译器无法识别 __STATIC_INLINE

我有一个 C 项目,它使用 arm-none-eabi-gcc 编译器在 ARM 架构上运行,现在我尝试使用 gnu99 编译器在 Windows 上本地编译它,因为我需要进行单元测试,并且很难在实际的硬件。

然而,尽管我在 makefile 中包含了内联标志,但编译器无法识别静态内联命令,如下所示:CFLAGS += -fgnu89-inline

以下是我收到的错误:

error: expected '=', ',', ';', 'asm' or '__attribute__' before 'void' __STATIC_INLINE void
Run Code Online (Sandbox Code Playgroud)

有谁知道如何让编译器识别内联命令?

c gcc

2
推荐指数
1
解决办法
6213
查看次数

如何检查文件是否存在

所以我的问题基本上是如果找不到作为参数给出的文件,我无法找出给出错误消息的条件。

if ARGV.empty?
    puts "Give me a file!"
elseif [condition]
    puts "Can't find the file"
else
    file = File.open(ARGV[0])
Run Code Online (Sandbox Code Playgroud)

我真正需要的是 elseif 的条件。

ruby

2
推荐指数
1
解决办法
3348
查看次数

红宝石正则表达式为两个反斜杠

我试图找到一个匹配任何字符串与两个连续反斜杠的正则表达式.我正在尝试各种变化,任何帮助?和处理反斜杠的信息

b='\\mystring'

if b=~/\\\\/
  puts "it matches"
end
Run Code Online (Sandbox Code Playgroud)

我似乎无法得到这个匹配.

ruby regex

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

UTF-8和'拆分'的自制和红宝石错误

我使用Homebrew来安装旧版本的Wine,因为我需要的程序只能在旧版本的Wine上运行.但是,我决定更新Wine,因为我已经了解到程序能够在最新版本的Wine上运行.由于我遇到了一些错误并且无法更新,我决定删除Homebrew并再次提供所有内容.一些错误说了一些关于Ruby的东西,因此我决定根据本教程将Ruby更新到版本2.1.2:http://railsapps.github.io/installrubyonrails-mac.html 然后我安装了Homebrew,它成功安装但是当我发布时brew doctor命令,我明白了:

/usr/local/Library/Homebrew/global.rb:109:in `split': invalid byte sequence in UTF-8 (ArgumentError)
from /usr/local/Library/Homebrew/global.rb:109:in `<top (required)>'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/local/Library/brew.rb:16:in `<main>'
Run Code Online (Sandbox Code Playgroud)

我发现了几个关于UTF-8编码问题的类似问题但没有解决我的问题.但是,我在PATH中发现了一些关于禁用字符的内容,可以通过发布来查找echo $PATH,显示如下:

/usr/local/bin:/Users/Martin/.rvm/gems/ruby-2.1.2/bin:/Users/Martin/.rvm/gems/ruby-2.1.2@global/bin:/Users/Martin/.rvm/rubies/ruby-2.1.2/bin:/opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin??n’export??n’export:/Users/Martin/.rvm/bin
Run Code Online (Sandbox Code Playgroud)

我知道我可能需要在某处更改某些内容但请记住,我是一名缺乏经验的用户,只掌握命令行的基本知识.我不知道Ruby是什么以及它是什么.如果你能帮我,我真的很感激.非常感谢你提前.

ruby homebrew split wine utf-8

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

使用 secp256r1 曲线(BouncyCastle)生成 ECDSA 签名,给出长度为 127 的签名

我正在使用 secp256r1 曲线和使用 BouncyCastle 的 SHA256 算法实现 ECDSA 签名生成。

对于某些输入,签名长度为 127 个字符。我觉得开头的“0”被删除了,因为签名被存储到 ECDSASigner 类中的 BigInteger 数据类型。

我已经使用确定性方法添加了来自 rfc6979 ECDSA 签名的样本

代码的相关部分:-

//Private key used in hex format -C9AFA9D845BA75166B5C215767B1D6934E50C3DB36E89B127B8A622B120F6721
        String secretNumberK = "09F634B188CEFD98E7EC88B1AA9852D734D0BC272F7D2A47DECC6EBEB375AAD4";
        SecureRandom secureRandom = new FixedSecureRandom(Hex.decode(secretNumber));
        ECPrivateKeyParameters ecPrivateKeySpec = Util.getECPriKeyParameter(ecPrivateKey);//it is the PrivateKey of the sample shown 
        byte[]  messageInHex = Hex.decode("test");

         ECDSASigner ecdsaSigner = new ECDSASigner();

        ecdsaSigner.init(true, new ParametersWithRandom(ecPrivateKeySpec,
                secureRandom));

         BigInteger[]  sig = ecdsaSigner.generateSignature(Util
                .generateSHAHash(messageInHex));
        flag = true;
        LOG.debug("r:: " + sig[0].toString(16).toString());
        LOG.debug("s:: " + sig[1].toString(16).toString()); …
Run Code Online (Sandbox Code Playgroud)

java cryptography bouncycastle ecdsa

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

Python 中 a, b = b, a 的时间复杂度是多少,其中 a 和 b 都是列表?

a = [1,2,3,4,5]
b = [5,6,7,8,9]
Run Code Online (Sandbox Code Playgroud)

你能告诉我以下的时间复杂度是多少:

a, b = b, a 
Run Code Online (Sandbox Code Playgroud)

将?

我猜测 O(n+m),其中 n 和 m 是各自列表的长度。

python list

0
推荐指数
1
解决办法
249
查看次数