C# 如何将5位十进制值表示为24位值?

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

我试图转换一个5位十进制值(范围从00001到99999),并以某种方式将其表示为一个分为3个字节的24位值,但我已经尝试了我所知道的每一种转换和位移位策略,但一直被卡住:/

示例:十进制值是12345,我需要发送3个十六进制值[aa][bb][cc],包括:

[aa]-最低显著性|[bb]-中等显著性|[cc]-最高显著性

我希望我不是在我的头,有一个简单的答案,提前感谢

尝试以下操作:

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是一个网络库类。上面的代码是一个用户定义的类。