当前位置: 首页 > 编程日记 > 正文

c# 读hex_c#十六进制到位转换(c# hex to bit conversion)

c#十六进制到位转换(c# hex to bit conversion)

我试图将64位数字的十六进制表示(例如字符串"FFFFFFFFF" )转换为二进制表示( "11111..." )。

我试过了

string result = Convert.ToString(Convert.ToUInt64(value, 16), 2);

但是这会导致一个令人困惑的编译器错误:

'System.Convert.ToString(object,System.IFormatProvider)'的最佳重载方法匹配有一些无效参数

参数2:无法从'int'转换为'System.IFormatProvider'

I'm trying to convert the hexadecimal representation of a 64-bit number (e.g., the string "FFFFFFFFF") to binary representation ("11111...").

I've tried

string result = Convert.ToString(Convert.ToUInt64(value, 16), 2);

but this results in a confusing compiler error:

The best overloaded method match for 'System.Convert.ToString(object, System.IFormatProvider)' has some invalid arguments

Argument 2: cannot convert from 'int' to 'System.IFormatProvider'

原文:https://stackoverflow.com/questions/9482420

更新时间:2020-01-16 12:01

最满意答案

可能有更好的解决方案,但请检查它是否有效:

public static string HexToBinary(string hexValue)

{

ulong number = UInt64.Parse(hexValue, System.Globalization.NumberStyles.HexNumber);

byte[] bytes = BitConverter.GetBytes(number);

string binaryString = string.Empty;

foreach (byte singleByte in bytes)

{

binaryString += Convert.ToString(singleByte, 2);

}

return binaryString;

}

最方便的方法是使用Convert.ToString(Int64, Int32) ,但ulong没有超载。 另一种解决方案是Convert.ToString(UInt64, IFormatProvider)并编写您自己的IFormatProvider。 通过查看示例,我发现了一个以二进制,八进制和十六进制字符串表示格式化数字的IFormatProvider: http : //msdn.microsoft.com/en-us/library/system.icustomformatter.aspx 。 那里的代码看起来和我提供的非常相似,所以我认为它不是一个糟糕的解决方案。

There might be a better solution, but check if this works:

public static string HexToBinary(string hexValue)

{

ulong number = UInt64.Parse(hexValue, System.Globalization.NumberStyles.HexNumber);

byte[] bytes = BitConverter.GetBytes(number);

string binaryString = string.Empty;

foreach (byte singleByte in bytes)

{

binaryString += Convert.ToString(singleByte, 2);

}

return binaryString;

}

The most convenient way would be to use Convert.ToString(Int64, Int32), but there is no overload for ulong. Another solution is Convert.ToString(UInt64, IFormatProvider) and write your own IFormatProvider. By looking at the examples I found an IFormatProvider that formats numbers in binary, octal and hex string representation: http://msdn.microsoft.com/en-us/library/system.icustomformatter.aspx. The code there looks very similar to what I provided, so I thinks its not a bad solution.

2012-02-28

相关问答

使用std::stringstream unsigned int x;

std::stringstream ss;

ss << std::hex << "fffefffe";

ss >> x;

以下示例生成-65538作为其结果: #include

#include

int main() {

unsigned int x;

std::stringstream ss;

ss << std::hex << "fffeff

...

像这样的东西: byte[] bytes = BitConverter.GetBytes(0x08fdc941);

if (BitConverter.IsLittleEndian)

{

bytes = bytes.Reverse().ToArray();

}

float myFloat = BitConverter.ToSingle(bytes, 0);

Something like this

...

string hexIpAddress = "0A010248"; // 10.1.2.72 => "0A010248"

byte[] bytes = new byte[hexIpAddress.Length / 2];

for (int i = 0; i < hexIpAddress.Length; i += 2)

bytes[i/2] = Convert.ToByte(hexIpAddress.Substring(i, 2), 16);

这导致了这个数组: bytes = {0x0

...

可能有更好的解决方案,但请检查它是否有效: public static string HexToBinary(string hexValue)

{

ulong number = UInt64.Parse(hexValue, System.Globalization.NumberStyles.HexNumber);

byte[] bytes = BitConverter.GetBytes(number);

string binaryString = string.Empt

...

我对你使用%x的猜测是, content将十六进制数编码为整数数组,而不是字符数组。 也就是说,您将content的0位数表示为'\0'或'0' ? strtol仅适用于后一种情况。 如果content确实是一个整数数组,那么下面的代码应该可以解决这个问题: hexToDec = 0;

int place = 1;

for(int i=3; i>=0; --i)

{

hexToDec += place * (unsigned int)*(content+i);

place *= 16;

}

...

每个十六进制数字映射完全位于4位,我通常记住每个位的8421个权重,所以即使记住一个转换也很容易 A = 10 = 8 + 2 = 1010 ... 5 = 4 + 1 = 0101 记住8-4-2-1的重量。 A 5

8+4+2+1 8+4+2+1

1 0 1 0 0 1 0 1

Each hex digit map exactly on 4 bit, I usually keep in mind the 8421 weights of each of these

...

解决方案是将PORTBhex更改为byte类型,并且根本不使用ToHex方法: 而不是IO.PORTBhex = ToHex(yourIntValue)使用此: IO.PORTBhex = checked((byte)yourIntValue);

如果你也可以使你的yourIntValue属于byte类型会更好。 To solution is to change PORTBhex to be of type byte and don't use that ToHex method at all:

...

你得到了正确的结果,这不是你想要的。 bin2hex()返回十六进制表示的ASCII字符串。 手册中的引用: 返回包含str的十六进制表示形式的ASCII字符串 。 所以如果你想要十六进制数,你可以使用这个: print_r(dechex(bindec("11111111")));

You get a correct result, it's just not what you want. bin2hex() returns an ASCII string of the hexadecimal

...

你应该只使用snprintf : int x = 0xDA8F;

char buf[9];

snprintf(buf, sizeof(buf), "%X", x); // Use %x for lowercase hex digits

要将数字的十六进制表示形式转换为int ,请使用strtol (它的第三个参数允许您指定基数),或者,因为您要将其分配给unsigned数据类型strtoul 。 代码看起来像这样: char* HexStr = "8ADF4B";

uint32_t Num

...

在intToHex函数中,您将反向插入字符。 试试这段代码: #include

#include

#include

#include

using namespace std;

char decToHex(int dec) {

char hex;

switch (dec) {

case 0:

hex = '0';

break;

case 1:

hex = '1';

break

...

相关文章:

pip install lxml失败原因

python3 是用 VC 14 编译的, python27 是 VC 9 编译的, 安装 python3 的包需要编译的也是要 VC 14 以上支持的. VC 14 &#xff08;2015&#xff09;下载地址&#xff1a; https://www.microsoft.com/zh-cn/download/confirmation.aspx?id48145&6B49FDFB-8E5B-4B07-BC31-1…

go语言服务器连接mysql_go语言原生连接数据库

go操作mysqldatabase/sql原生支持连接池&#xff0c;是并发安全的这个标准库没有具体实现&#xff0c;只是列出了一些需要第三方库实现的具体内容下载驱动go get -u github.com/go-sql-driver/mysql连接数据库package mainimport ("database/sql""fmt"_ &q…

2017《面向对象程序设计》寒假作业一

1、你有什么技能比大多人&#xff08;超过70%以上&#xff09;更好&#xff1f; 我看电影比一般人多一点点&#xff1b;我听英文歌比一般人多一点点&#xff1b;我有一把尤克里里和一个滑板。我有很多爱好&#xff0c;但都没能发展成我的特长&#xff0c;它们给我的生活增添了情…

gis中的加权求和工具在哪里_ArcGIS教程:加权总和的工作原理

使用加权总和工具可以对多个输入进行加权及组合&#xff0c;以创建整合式分析。它可以轻松地将多个栅格输入(代表多种因素)与组合权重或相对重要性相结合&#xff0c;在这一方面它与加权叠加工具很相似。这两种工具有两个主要区别&#xff1a;加权总和工具不能将重分类值重设为…

flask执行python程序_Flask app后如何执行代码(应用程序运行)开始

但我想使用一种方法&#xff0c;它还可以保存相机中的所有相框(我已经有功能了)。在问题是&#xff0c;一旦我启动了Flask应用程序&#xff0c;我最多只能存储在localhost中打开web页面时捕获的帧。我希望能够在应用程序运行时执行其他代码(保存图片)&#xff0c;以便保存所有图…

异常处理与MiniDump详解(3) SEH(Structured Exception Handling)

write by 九天雁翎(JTianLing) -- blog.csdn.net/vagrxie 讨论新闻组及文件 一、 综述 SEH--Structured Exception Handling&#xff0c;是Windows操作系统使用的异常处理方式。 对于SEH&#xff0c;有点需要说明的是&#xff0c;SEH是属于操作系统的特性&#xff0c;不为特定…

电热水器技术性能指标

1、即热式和贮水式的选择 有使用安全、卫生、不受水压限制&#xff0c;随时可供热水&#xff0c;水温易调节等优点&#xff0c;在发达的西方国家已广泛地使用&#xff0c;即热式热水器体积小&#xff0c;不须预热&#xff0c;但功率大&#xff0c;通常在4-6kw以上&#xff0…

java相关网络协议无响应_java网络协议有哪些

上网的途径有很多&#xff0c;java是最普遍的&#xff0c;那么卑java网络协议有哪些?了解网络安全常识&#xff0c;首先就要了解计算机网络安全有哪些基本注意事项&#xff0c;下面佰佰安全网小编就带您认识一下吧。概念协议是指计算机通信网络中两台计算机之间进行通信所必须…

es日期format_elasticsearch存储日期格式字段

elasticsearch创建index之后&#xff0c;可以设置mapping&#xff0c;如果mapping中没有设置date的format&#xff0c;那么默认为两种格式&#xff1a;date_optional_time 此格式为ISO8601标准 示例&#xff1a;2018-08-31T14:56:18.00008:00epoch_millis 也就是时间戳 示例151…

arraylist 后往前遍历_面试官:谈谈常用的Arraylist和Linkedlist的区别

Arraylist&#xff1a;底层是基于动态数组&#xff0c;根据下表随机访问数组元素的效率高&#xff0c;向数组尾部添加元素的效率高&#xff1b;但是&#xff0c;删除数组中的数据以及向数组中间添加数据效率低&#xff0c;因为需要移动数组。例如最坏的情况是删除第一个数组元素…

linux mipi驱动分析_寒武纪社招内推数字IC设计、DSI驱动、软件架构、产品经理、芯片架构、工具链开发、深度学习、FAE工程师...

点击上方蓝字关注我吧&#xff01;为什么内推更靠谱&#xff1f;内推是基于人脉关系链的推荐&#xff0c;其背后有一定的信用背书&#xff0c;靠谱的人推荐的人相对也会比较靠谱&#xff0c;所以企业一般职位都是从内部开始分享的&#xff0c;相较于自己海投简历&#xff0c;内…

关于鼠标、键盘的几个例子

1 1. 鼠标的哪个按键被点击&#xff1f;2 <html>3 <head>4 <script type"text/javascript">5 function whichButton(event)6 {7 if (event.button2)8 {9 alert("你点击了鼠标右键!")10 }11 else12 {13 alert("你点击了鼠标左键!&qu…

mysql性能优化1

当我们去设计数据库表结构&#xff0c;对操作数据库时&#xff08;尤其是查表时的SQL语句&#xff09;&#xff0c;我们都需要注意数据操作的性能。这里&#xff0c;我们不会讲过多的SQL语句的优化&#xff0c;而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧…

java获取date的时分秒_Java 之 Date 获取 年月日时分秒

package com.util;import java.text.DateFormat;import java.util.Calendar;import java.util.Date;public class Test {public void getTimeByDate(){Date date new Date();DateFormat df1 DateFormat.getDateInstance();//日期格式&#xff0c;精确到日System.out.println(…

python中字典的value可以为任意对象_Python对象作为字典值

所以我有以下代码,其中字典的值是一个对象,该对象的关键是对象中的一个项目&#xff1a;class MyObject():def getName(self):return self.namedef getValue(self):return self.valuedef __init__(self,name, value):self.name nameself.value valuedict {}object MyObject…

Android Java使用JavaMail API发送和接收邮件的代码示例

JavaMail是Oracle甲骨文开发的Java邮件类API,支持多种邮件协议,这里我们就来看一下Java使用JavaMail API发送和接收邮件的代码示例 使用Javamail发送邮件&#xff0c;必需的jar包&#xff08;请下载javamail的源文件&#xff0c;官方下载页&#xff1a;http://www.oracle.com/t…

python 包用法_Python 基础教程之包和类的用法

Python 基础教程之包和类的用法这篇文章主要介绍了 Python 基础教程之包和类的用法的相关资料, 需要的朋友可以参考下Python 是一种面向对象、解释型计算机程序设计语言&#xff0c;由 Guido van Rossum 于 1989 年底发明&#xff0c;第一个公开发行版发行于 1991 年。Python 语…

[bzoj2259][Oibh]新型计算机_Dijkstra

新型计算机 bzoj-2259 Oibh 题目大意&#xff1a;给定一个n个数的数列&#xff0c;第i个数为a[i]&#xff0c;更改第i个数至x的代价为|x-a[i]|。求最小代价&#xff0c;使得&#xff1a;读入一个数s1后&#xff0c;向后连着读s1个数&#xff0c;然后如s2&#xff0c;再向后读s2…

arcengine 加载地图不显示_地图建筑建模制作与输出

导读阅读完此文&#xff0c;你会了解&#xff1a;1、地图建筑模型通常如何制作的2、地图建筑模型替换策略地图上往往会有一些定制建筑的需求&#xff0c;例如将下面的水立方做成气泡感的。 加入定制模型之前加入定制模型之后这种需求就需要建模师对建筑做定制化建模。模型制作首…

用easyx画电子钟_Canvas入门-利用Canvas绘制好玩的电子时钟

在这之前你需要了解一下方法的使用&#xff1a;beginPath()closePath()moveTo()lineTo()fill()stroke()fillRect()clearRect()这些我在前面的文章介绍过&#xff0c;可以看&#xff1a;画个圆arc()方法arc(x, y, radius, startAngle, endAngle, anticlockwise) > 画一个以(x…

前端开发工程师面试题之综合篇

温馨提示&#xff1a;以下系列的面试题是通过整合网上各位大牛的文章而成&#xff0c;站在巨人的肩膀上&#xff0c;能够让我们更进一步。 1、页面从输入URL到页面加载显示完成&#xff0c;这个过程中都发生了什么&#xff1f; 输入域名地址发送域名地址至DNS服务器并获得对应W…

C语言基础(12)-输入和输出

1. int scanf(const char *format, ...) 说明&#xff1a;scanf用于通过控制台输入字符串。 注意&#xff1a; (1).通过scanf()函数输入的字符串&#xff0c;系统会自动在其后面补一个0,scanf默认回车和空格都是代表输入完成&#xff0c;这样会导致无法输入一个完整的字符串。 …

java static 可见性_Java多线程 synchronized与可见性的关系以及可见性问题总结

作者&#xff1a;七里香的编程之路出自&#xff1a;OSCHINA原文&#xff1a;my.oschina.net/u/4098550/blog/4548274能保证可见性的措施除了volatile 可以让变量保证可见性外.happens-before九大规则. 都是能够保证可见性的. 其中就包含了锁操作(synchronized 和 lock) 和 vola…

表达式树 java_表达树—构建表达式树、获取表达式(二)

public classExprTree {//最后访问头结点public BinaryTreeNode buildExprTree(char postfixExpr[],intsize){LinkedList stacknewLinkedList();BinaryTreeNode nodenull;for(int i0;inodenewBinaryTreeNode();node.setLeft(null);node.setRight(null);node.setData(postfixExp…

python 客户端 如何获取手机_Python学习---Django的request扩展[获取用户设备信息]

关于Django的request扩展【获取用户设备信息】settings.pyINSTALLED_APPS [...app01, # 注册app]STATICFILES_DIRS (os.path.join(BASE_DIR, "statics"),) # 现添加的配置,这里是元组&#xff0c;注意逗号TEMPLATES [...DIRS: [os.path.join(BASE_DIR, templates)…

: error c2062: 意外的类型“int”_Go 命令行解析 flag 包之扩展新类型

上篇文章 说到&#xff0c;除布尔类型 Flag&#xff0c;flag 支持的还有整型&#xff08;int、int64、uint、uint64&#xff09;、浮点型&#xff08;float64&#xff09;、字符串&#xff08;string&#xff09;和时长&#xff08;duration&#xff09;。flag 内置支持能满足大…

java英文字符串大小写转换 必须使用_【Java基础】之字符串大小写转换不利用API....

public class UpStr{static String str "AbcDeFdDSfgdsadeADFSAFCfdsa";public String transformUpperOrLower(String str, String type){//将字符串转换为char数组char[] ch str.toCharArray();if (type null || type.length() 0 || type.equals(""))…

.net core 17

转载于:https://www.cnblogs.com/qingwengang/p/6297486.html

vue中子组件和子组件之间怎么通信_vue.js组件之间如何通信?

vue.js组件之间如何通信&#xff1f;下面本篇文章就来给大家介绍一下Vue.js组件间通信方式。有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对大家有所帮助。平时在使用Vue框架的业务开发中&#xff0c;组件不仅仅要把模板的内容进行复用&#xff0c;更…

以太坊RLP机制分析

目录 1 RLP 定义 2 RLP 编码规则 3 RLP 编码实例 4 RLP 分析 1 RLP 定义 RLP&#xff0c;即 Recursive Length Prefix, 递归长度前缀编码&#xff0c;是以太坊数据序列化的主要方法&#xff0c; 具有较好的数据处理效率&#xff0c;尤其是将长度和类型统一作为前缀&#xff0c;…