社区
Java SE
帖子详情
如何将有符号的long型转换成无符号的long型
herowach
2008-11-25 01:28:41
例如一个负的长整型-1234567890, 如何能转换成正的长整型?(给C++模块用),移位?
...全文
474
12
打赏
收藏
如何将有符号的long型转换成无符号的long型
例如一个负的长整型-1234567890, 如何能转换成正的长整型?(给C++模块用),移位?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
herowach
2008-11-26
打赏
举报
回复
经测试,
long lSrc = -1984060040;
System.out.println(Long.toString(lSrc, 2));//-1110110010000100101101010001000
long lAbsoluteValue = Math.abs(lSrc);
System.out.println(Long.toString(lAbsoluteValue, 2));//1110110010000100101101010001000
long lDst = ~lAbsoluteValue;
System.out.println(Long.toString(lDst , 2));//-1110110010000100101101010001001
System.out.println(Long.toString(Math.abs(lDst) , 2));//1110110010000100101101010001001
崩溃,咋能把1110110010000100101101010001000取反变成0001001101111011010010101110111啊?
来个正则表达式也成,我直接用字符串拼起转成Long算了~~~
herowach
2008-11-26
打赏
举报
回复
[Quote=引用 8 楼 kao331431214 的回复:]
你是要反转缺不改符号位么
那就用 & | ^ 这3个都可以~
[/Quote]
你还没理解我的需求...
herowach
2008-11-26
打赏
举报
回复
哦,我搞错了,不能求反,-1984060040本身就是无符号的2310907256,如果求反就会变成1984060039,显然是不对的
怎么能直接转成无符号呢,思考中```
kao331431214
2008-11-26
打赏
举报
回复
如果你那数字是动态的那就很难了
直接向右移1位 记得用>> 这也是个办法
但是如果是动态数字 你就要想个算法出来了
kao331431214
2008-11-26
打赏
举报
回复
你是要反转缺不改符号位么
那就用 & | ^ 这3个都可以~
xian_hf
2008-11-26
打赏
举报
回复
没弄过,手动加个符号位?
herowach
2008-11-26
打赏
举报
回复
顶起```
herowach
2008-11-26
打赏
举报
回复
举个例子:
-1984060040 , 我希望把它转成无符号整数,
那么1984060040的二进制是01110110010000100101101010001000(最高位为符号位),
根据负数转正数的方法是 求其补码,
那么01110110010000100101101010001000的反码是10001001101111011010010101110111,
补码是反码+1,即10001001101111011010010101111000,
这个数的十进制就是2310907256,
我就是想知道在JAVA里怎么能得到这个正数,
~-1984060040取反不会带上符号位,请问怎么能将符号位也给带上?
shenjie1989
2008-11-25
打赏
举报
回复
给C++模块用????????????什么意思
JackyNone
2008-11-25
打赏
举报
回复
你要的是什么?
herowach
2008-11-25
打赏
举报
回复
在线等,顶起```
herowach
2008-11-25
打赏
举报
回复
先声明,不是取绝对值...
java中有
符号
数与
无
符号
数互相转换
文章目录java中
long
类
型
转换成
无
符号
数java中
无
符号
数
转换成
有
符号
数 java中
long
类
型
转换成
无
符号
数 由于JAVA中基本数据类
型
均为有
符号
数,而且最大数据类
型
long
为8字节 当
long
为负数时,最高位为1,转为
无
符号
数时...
JAVA 将bytes 转为有
符号
LONG
和
无
符号
LONG
bytes 转为有
符号
long
用biginteger BigInteger bi = new BigInteger( "7fffffffffffffff", 16); L.i(bi.
long
Value() + ""); 转为
无
符号
的
LONG
BigInteger bi = new BigInteger( "7fffffffffffffff", 16); L...
Java中int或
long
等整
型
数值如何转换为
无
符号
整数
static String toUnsignedString(int/
long
i):将指定int或
long
型
整数转换为
无
符号
整数对应的字符串。 static String toUnsignedString(int/
long
i, int radix):将指定int或
long
型
整数转换为指定进制的
无
符号
...
c语言
long
int转double,将
无
符号
long
long
转换为C中的double
对于我的生活,我无法弄清楚如何将表示纳秒的
无
符号
long
long
int转换为表示C中的秒的double(我使用32位big-endian PowerPC 405进行此特定测试,以及GNU C99编译器).我试过了:unsigned
long
long
int nanoseconds = ...
Java signed unsigned
long
无
符号
数和有
符号
数之间的转换测试
Java 中的
long
类
型
是64位,即64个二进制位在一起来表示一个数,但是64个bit位中,最...怎么把这个
无
符号
的数字变成Java能表示的
long
呢? @Test public void Max() { System.out.println(
Long
.MAX_VALUE); Syst
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章