当前位置: 首页 > 编程语言 > C#

如何将十六进制字符串转换为有符号整数?分享

时间:2023-04-11 00:05:50 C#

如何将十六进制字符串转换为有符号整数?我得到一个十六进制字符串,需要转换为带符号的8位整数。目前我正在使用Int16/Int32进行转换,这显然不会为8位整数给出负值。如果我得到十六进制值255,我如何将它转换为-1十进制?我假设我想使用sbyte,但我不确定如何正确获取值。您可以使用Convert.ToSByte例如:stringx="aa";sbytev=Convert.ToSByte(x,16);//结果:v=0xAA或-86您也可以使用sbyte.Parse例如:stringy="bb";sbytew=sbyte.Parse(y,System.Globalization.NumberStyles.HexNumber);//结果:w=0xBB或-69回答关于Int16的高字节或低字节的问题:stringsigned_short="feff";//将16位值截断为8位sbyteb1=(sbyte)Convert.ToInt16(signed_short,16);sbyteb2=(sbyte)short.Parse(signed_short,System.Globalization.NumberStyles.HexNumber);//result:b1=0xFFor-1//result:b2=0xFFor-1//使用16位sbyte的高8位b3=(sbyte)(Convert.ToInt16(signed_short,16)>>8);sbyteb4=(sbyte)(short.Parse(signed_short,System.Globalization.NumberStyles.HexNumber)>>8);//result:b3=0xFEor-2//result:b4=0xFEor-2需要实现unchecked,如下所示:sbytenegativeOne=unchecked((sbyte)255);我的解决办法是先取16位整数的前8位存入sbyte。以上就是C#学习教程:Howtoconvertahexstringtoasignedinteger?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: