C# 如何将5位十进制值表示为24位值?
我试图转换一个5位十进制值(范围从00001到99999),并以某种方式将其表示为一个分为3个字节的24位值,但我已经尝试了我所知道的每一种转换和位移位策略,但一直被卡住:/ 示例:十进制值是12345,我需要发送3个十六进制值[aa][bb][cc],包括: [aa]-最低显著性|[bb]-中等显著性|[cc]-最高显著性 我希望我不是在我的头,有一个简单的答案,提前感谢 尝试以下操作:C# 如何将5位十进制值表示为24位值?,c#,binary,hex,decimal,bit,C#,Binary,Hex,Decimal,Bit,我试图转换一个5位十进制值(范围从00001到99999),并以某种方式将其表示为一个分为3个字节的24位值,但我已经尝试了我所知道的每一种转换和位移位策略,但一直被卡住:/ 示例:十进制值是12345,我需要发送3个十六进制值[aa][bb][cc],包括: [aa]-最低显著性|[bb]-中等显著性|[cc]-最高显著性 我希望我不是在我的头,有一个简单的答案,提前感谢 尝试以下操作: using System; using System.Collections.Generic; using
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Decimal number = new Decimal() { number = 12345 };
string output = number.ToString();
}
}
public class Decimal
{
public int number { get; set; }
public override string ToString()
{
string output = string.Format("[{0}][{1}][{2}]",
(number & 0xFF).ToString("X2"),
((number >> 8) & 0xFF).ToString("X2"),
((number >> 16) & 0xFF).ToString("X2"));
return output;
}
}
}
请尝试以下操作:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Decimal number = new Decimal() { number = 12345 };
string output = number.ToString();
}
}
public class Decimal
{
public int number { get; set; }
public override string ToString()
{
string output = string.Format("[{0}][{1}][{2}]",
(number & 0xFF).ToString("X2"),
((number >> 8) & 0xFF).ToString("X2"),
((number >> 16) & 0xFF).ToString("X2"));
return output;
}
}
}
12345不是十六进制的003039吗?我觉得我一定在这里遗漏了什么?是的,但99999是1869F,会不会突然变成01869F?是的,这就是它用十六进制表示的方式。啊。。。我刚刚意识到我的问题是我用的是int而不是long。。。我看到了你的答案,在阅读时,我在想“是的,当然会是这样”,但后来我意识到003039不是我的程序从12345输入输出的。我仔细检查了一下,它输出了一个空白。对于变量,我将int改为long,并开始得到实际结果facepalm。漫长的一天,感谢您,并为愚蠢的问题感到抱歉:)12345不是十六进制的003039吗?我觉得我一定在这里遗漏了什么?是的,但99999是1869F,会不会突然变成01869F?是的,这就是它用十六进制表示的方式。啊。。。我刚刚意识到我的问题是我用的是int而不是long。。。我看到了你的答案,在阅读时,我在想“是的,当然会是这样”,但后来我意识到003039不是我的程序从12345输入输出的。我仔细检查了一下,它输出了一个空白。我将变量的int改为long,并开始获得实际结果facepalm。漫长的一天,谢谢你,很抱歉这个愚蠢的问题:)比我之前做的要干净得多,这非常有用谢谢!旁注
Decimal
对于存储Int32
的类型来说是非常糟糕的名称。。。除非目标是巨魔:)我的小数点以大写字母D开头。我只是使用了OP使用的术语。“我的小数点以大写字母D开头”--System.Decimal
。“我只是使用了OP使用的术语”——OP没有发布任何名为Decimal
.System.Decimal类型的代码。Decimal是一个网络库类。上面的代码是一个用户定义的类。比我以前做的要干净得多,这非常有用,谢谢!旁注Decimal
对于存储Int32
的类型来说是非常糟糕的名称。。。除非目标是巨魔:)我的小数点以大写字母D开头。我只是使用了OP使用的术语。“我的小数点以大写字母D开头”--System.Decimal
。“我只是使用了OP使用的术语”——OP没有发布任何名为Decimal
.System.Decimal类型的代码。Decimal是一个网络库类。上面的代码是一个用户定义的类。