如何将数字转换为字节?

Posted

技术标签:

【中文标题】如何将数字转换为字节?【英文标题】:How to cast a number to a byte? 【发布时间】:2008-09-30 14:23:40 【问题描述】:

在 C 和 C++ 中,您可以通过在数字末尾添加“l”来告诉编译器数字是“long”。 例如长 x = 0l;

如何告诉 C# 编译器一个数字是一个字节?

【问题讨论】:

我喜欢这些答案,但是将数字转换为字节与将数字声明为字节一样吗? 【参考方案1】:
byte b = (byte) 123; 

虽然

byte b = 123;

做同样的事情。如果你有一个变量:

int a = 42;
byte b = (byte) a;

【讨论】:

整数字面量将从 int 隐式转换为 byte,因此您无需将 (byte) cast 放在数字之前。以防有人错过了上述示例的逻辑。【参考方案2】:

根据C# language specification,没有办法指定字节文字。您必须转换为字节才能获得一个字节。您最好的选择可能是指定十六进制并向下转换,如下所示:

byte b = (byte) 0x10;

【讨论】:

(byte) 是在投射“无操作”吗?或者至少需要一段时间是真的吗?【参考方案3】:

记住,如果你这样做了:

byte b = (byte)300;

它不会像你期望的那样工作。

【讨论】:

那句话的真实性取决于我的期望 ;-) @casademora 详细说明一下,结果会是什么? 一个字节只能存储0到255之间的数字(1111 1111 = 255)。这个数字不能存储在一个字节中,所以会被“截断”为一个字节。【参考方案4】:

MSDN 使用implicit conversion。我没有看到byte type suffix,但您可能会使用显式转换。我只使用 2 位十六进制整数 (int) 常量。

【讨论】:

【参考方案5】:

无需告诉编译器。您可以为 byte 变量分配任何有效值,编译器就可以使用它:byte 没有后缀。

如果你想在一个对象中存储一个字节,你必须强制转换:

object someValue = (byte) 123;

【讨论】:

以上是关于如何将数字转换为字节?的主要内容,如果未能解决你的问题,请参考以下文章

如何在C ++中将字节数组中的整数转换为数字

将 Oracle 的数字转换为字节,然后转换为值 + 指数

PHP如何将从二进制文件中读取的字节转换为数字

在 Java 中,如何将字节数组转换为十六进制数字字符串,同时保持前导零? [复制]

在 Java 中,如何将字节数组转换为十六进制数字字符串,同时保持前导零? [复制]

Swift:如何将Bytes转换为float /获得更精确的数字?