有符号整型和无符号整型怎么转换

newbie_code 2017-05-15 11:45:18
在C#中如何使用内置的方法进行有符号和无符号整型之间的转换。
...全文
1452 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_33811849 2019-03-04
  • 打赏
  • 举报
回复
请大神解答,为什么256前有黑块,怎么解决,谢谢
hkliugang 2019-03-04
  • 打赏
  • 举报
回复
16进制转10进制(带正负的)

    方法:Convert.ToInt16(16进制编码,16);

    负数例如:(16进制)FFFF=(10进制)-1 解决:C#代码:Convert.ToInt16("FFFF",16); 结果:-1

    正数例如:(16进制)1E0=(10进制)480 解决:C#代码:Convert.ToInt16("1E0",16); 结果:480
crystal_lz 2017-05-15
  • 打赏
  • 举报
回复
引用 9 楼 dolphin_gjh 的回复:
[quote=引用 7 楼 sp1234 的回复:] 130 不等于130,难道 130 = -126? 你说的“转换”那根本不是正常的整数数值概念。
那我这个地方需要做什么样的转换才能达到-126啊?[/quote] 你还是把数据类型占用对应字节搞清楚再说吧 已byte为例 -126 的二进制为 10000010 当作无符号正好是 正数 130 然后你自己看着办吧
newbie_code 2017-05-15
  • 打赏
  • 举报
回复
引用 7 楼 sp1234 的回复:
130 不等于130,难道 130 = -126? 你说的“转换”那根本不是正常的整数数值概念。
那我这个地方需要做什么样的转换才能达到-126啊?
  • 打赏
  • 举报
回复
130,不管是 byte、short、long,不管有没有符号,做为数值都应该是 130。 你学了二进制知识,反而把十进制数值概念给抛弃啦。
  • 打赏
  • 举报
回复
130 不等于130,难道 130 = -126? 你说的“转换”那根本不是正常的整数数值概念。
newbie_code 2017-05-15
  • 打赏
  • 举报
回复
引用 1 楼 sp1234 的回复:
直接赋值即可。


那这个转换结果不应该是-126的吗?为啥出来还是130啊?
newbie_code 2017-05-15
  • 打赏
  • 举报
回复
引用 楼主 dolphin_gjh 的回复:
在C#中如何使用内置的方法进行有符号和无符号整型之间的转换。


那这个转换结果不应该是-126的吗?为啥出来还是130啊?
newbie_code 2017-05-15
  • 打赏
  • 举报
回复

那这个转换结果不应该是-126的吗?为啥出来之后是130呢?
  • 打赏
  • 举报
回复
强转就可以,或者你可以用convert.Toxxx方法
crystal_lz 2017-05-15
  • 打赏
  • 举报
回复
(int) (uint) Convert.ToXXX()
  • 打赏
  • 举报
回复
直接赋值即可。
xuzuning 2017-05-15
  • 打赏
  • 举报
回复
            sbyte m = -126;
            Console.WriteLine((byte)n); //130
xuzuning 2017-05-15
  • 打赏
  • 举报
回复
你们都不会好好说话吗? 只有溢出了(超出了可表示的范围)才会有符号的变化
            byte n = 130;
            Console.WriteLine((sbyte)n); //-126

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧