相关疑难解决方法(0)

"文字"这个词是什么意思?

在文字字符串和文字值等上下文中使用时,"文字"这个词的含义是什么?

字面值和值之间有什么区别?

c# language-agnostic glossary terminology

72
推荐指数
6
解决办法
4万
查看次数

将十六进制字符串转换为十进制整数

我正在写一个Rust程序,它读取I2C总线并保存数据.当我读了I2C总线,我得到这样的十六进制值0x11,0x22等等.

现在,我只能将其作为字符串处理并按原样保存.有没有办法可以解析为整数?它有内置功能吗?

parsing hex rust

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

以十六进制表示显示u8切片

我需要转换&[u8]为十六进制表示.例如[ A9, 45, FF, 00 ... ].

std::fmt::UpperHex切片没有实现特性(所以我不能使用std::fmt::format).Rust具有serialize::hex::ToHex特征,它转换&[u8]为十六进制字符串,但我需要一个具有单独字节的表示.

我可以UpperHex&[u8]自己实现特质,但我不确定这会是多么规范.这样做最规范的方法是什么?

hex slice rust

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

十进制数到十六进制字符串

Rust有一组函数可以很容易地将十进制整数转换为十六进制字符串吗?我将字符串转换为整数没有问题,但我似乎无法弄清楚相反的情况.目前我所拥有的不起作用(可能有点令人厌恶)

编者注 - 此代码早于Rust 1.0,不再编译.

pub fn dec_to_hex_str(num: uint) -> String {
    let mut result_string = String::from_str("");
    let mut i = num;
    while i / 16 > 0 {
        result_string.push_str(String::from_char(1, from_digit(i / 16, 16).unwrap()).as_slice());
        i = i / 16;
    }
    result_string.push_str(String::from_char(1, from_digit(255 - i * 16, 16).unwrap()).as_slice());

    result_string
}
Run Code Online (Sandbox Code Playgroud)

我是在正确的轨道上,还是我在思考这一切?

rust

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

如何在Rust中将字符串转换为十六进制?

我想在Rust中将一串字符(SHA256哈希)转换为十六进制:

extern crate crypto;
extern crate rustc_serialize;

use rustc_serialize::hex::ToHex;
use crypto::digest::Digest;
use crypto::sha2::Sha256;

fn gen_sha256(hashme: &str) -> String {
    let mut sh = Sha256::new();
    sh.input_str(hashme);

    sh.result_str()
}

fn main() {
    let hash = gen_sha256("example");

    hash.to_hex()
}
Run Code Online (Sandbox Code Playgroud)

编译器说:

error[E0599]: no method named `to_hex` found for type `std::string::String` in the current scope
  --> src/main.rs:18:10
   |
18 |     hash.to_hex()
   |          ^^^^^^
Run Code Online (Sandbox Code Playgroud)

我可以看到这是真的; 看起来它只是实现了[u8].

我是什么做的?在Rust中没有实现从字符串转换为十六进制的方法吗?

我的Cargo.toml依赖项:

[dependencies]
rust-crypto = "0.2.36"
rustc-serialize = "0.3.24"
Run Code Online (Sandbox Code Playgroud)

编辑我刚刚从rust-crypto库中发现字符串已经是十六进制格式.D'哦.

hex type-conversion rust

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

Rust中的宏和函数有什么区别?

引自Rust博客:

最后要提一句:Rust的宏与C宏有很大不同,如果你已经使用过它们了

Rust中的宏和函数有什么区别?它与C有什么不同?

rust

5
推荐指数
2
解决办法
1992
查看次数

如何将十六进制字符串转换为u8切片?

我有一个看起来像这样的字符串,"090A0B0C"我想将其转换为看起来像这样的切片[9, 10, 11, 12].我最好怎么做呢?

我不想将单个十六进制char元组转换为单个整数值.我想将包含多个十六进制char元组的字符串转换为多个整数值的切片.

rust

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

如何在 Rust 中将十六进制字符串转换为浮点数?

将十六进制字符串转换为浮点数的最直接方法是什么?(不使用第 3 方板条箱)

Rust 是否提供了一些与 Python 相同的功能? struct.unpack('!f', bytes.fromhex('41973333'))


请参阅PythonJava 的此问题,提及以供参考。

rust

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

文字和非文字有什么区别,除了非文字进入堆的事实?

我对文字和非文字之间的区别感到困惑(那些在堆上的,我不知道它们被称为什么).例如,String类型为例:

我们已经看过字符串文字,其中字符串值被硬编码到我们的程序中.字符串文字很方便,但它们并不总是适合您想要使用文本的每种情况.一个原因是它们是不可改变的....

我不明白上面的内容,因为我们已经看到了这样一个例子:

let mut a = "a"; // this is String literal here, so sitting on the stack
a = "b";
println!("a is being changed to...{}", a); // this is the same String literal sitting on the stack?
Run Code Online (Sandbox Code Playgroud)

显然,文字在Rust中是可变的.两者之间有什么区别,除了文字进入堆栈这一事实,而非文字进入堆?

我试图理解为什么我不应该在我的代码中使用可变文字,考虑到堆栈比堆快.

// a is mutable literal
let mut a = "a";
a = "b";
// b is mutable 'non-literal'
let mut b = String::from("a");
b = String::from("b");
Run Code Online (Sandbox Code Playgroud)

types memory-management rust

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