码迷,mamicode.com
首页 > 其他好文 > 详细

16进制到byte

时间:2016-06-18 09:00:27      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:byte

我们经常会看到这样的语法

(byte) 0xAD

0xAD实际是个16进制,转换成二进制为:10101101,转换成10进制是:173,它是个正数

10101101只是int的简写,int由4个byte字节,即32位bit组成,实际的值是

(00000000 00000000 00000000 )10101101

劳资醉了,写了半天,保存的时候只保存了一部分,傻的51cto,再写一次


int由4 byte组成,因此int转byte是会掉位的,直接截取最后一个字节,即:

10101101

符号位是1,因此它是负数,负数的存储方式是补码。因此要先求出补码才能计算值。

求补码方式为:

符号位不变,其他位取反,然后+1,映射到这里则为

11010010 + 1 -> 11010011

则值为 -(2^6+2^4+2^1+2^0) = -83


因此0xAD = 173 ,(byte) 0xAD=-83


16进制到byte

标签:byte

原文地址:http://lj3331.blog.51cto.com/5679179/1790490

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!