如何解决如何将字符串转换为 12 位二进制而不改变它在 asp.net c#
我想将给定的字符串转换为 12 位二进制而不改变它的值 例如:如果我的字符串是 101010101010,那么我的二进制文件必须与字符串值(101010101010)相同。我将二进制(12)作为 sql server 中的数据类型
解决方法
.NET 没有专门的 12 位二进制类型,但 int
工作得很好...
int i = Convert.ToInt32("101010101010",2);
给出相同的二进制值 0b101010101010 - 也就是十进制 2730。它看起来不同,但是...如果你想要一个 string
,你已经有了 em>.
如果您真的真的想要填充 binary(12)
数据库值,那么在 C# 术语中您需要一个 byte[12]
值。如果它的内容是 character 数据(所以十六进制值 31-30-31-30-31-30-31-30-31-30-31-30),那么它可以很简单:
string s = "101010101010";
var bytes = Encoding.ASCII.GetBytes(s);
但是,如果您希望字节为值 0/1(即十六进制值 01-00-01-00-01-00-01-00-01-00-01-00),那么您'需要更多类似的东西:
string s = "101010101010";
var bytes = new byte[s.Length];
for (int i = 0; i < bytes.Length; i++)
{
bytes[i] = s[i] switch
{
'0' => 0x00,'1' => 0x01,_ => throw new InvalidOperationException("Unexpected value: " + s[i]),};
}
(在任何一种情况下,bytes
都是要发送到数据库的值)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。