16进制到byte转换

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

(byte) 0xAD

 

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

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

(00000000 00000000 00000000 )10101101

 

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

时间: 2024-10-19 03:14:33

16进制到byte转换的相关文章

16进制到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 符号位是

各种跟16进制相关的转换问题

// 字符串转换成16进制 public static String toHexString(String s) { String str = ""; for (int i = 0; i < s.length(); i++) { int ch = (int) s.charAt(i); String s4 = Integer.toHexString(ch); str = str + s4; } return "0x" + str;// 0x表示十六进制 } //

AES加密 16进制与二进制转换

import java.security.Key; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; import org.apache.commons.codec.binary.Base64; /** * AES安全编码组件 */ public abstract class AES

C#串口通讯中常用的16进制的字节转换

1.对于通讯协议的十六进制数值进行简单转换 //二进制转十进制Console.WriteLine("二进制 111101 的十进制表示: "+Convert.ToInt32("111101", 2));//八进制转十进制Console.WriteLine("八进制 44 的十进制表示: "+Convert.ToInt32("44", 8));//十六进制转十进制Console.WriteLine("十六进制 CC的十

[iOS]把16进制(#871f78)颜色转换UIColor

// // ViewController.m // text // // Created by 李东旭 on 16/1/22. // Copyright © 2016年 李东旭. All rights reserved. // #import <UIKit/UIKit.h> #import "ViewController.h" // 定义个宏,方便实用,>> 16 的意思是把16进制转换成2进制后,右移16位(移动掉的直接舍弃) #define UIColorF

ASCII码与16进制的互相转换(表)

所谓的ASCII和16进制都只是概念上的东西,在计算机中通通是二进制 转换应该是输出的转换,同样是一个数,在计算机内存中表示是一样的,只是输出不一样ASCII是针对字符的编码,几乎是键盘上的字符的编码.下面是一张ASCII和16进制的对应表: ASCII与16进制转换 ASCII 16进制 ASCII 16进制 ASCII 16进制 ASCII 16进制 NUL 00H DLE 10H SP 20H 0 30H SOH 01H DC1 11H ! 21H 1 31H STX 02H DC2 12

C#中2、8、16进制 有符号转换10进制正负数

曾经让我苦想的其他进制转有符号整型问题,结果自己想到方法解决后才发现原来如此简单. 1.Int16(2个byte长度 ) : 方法 :Convert.ToInt16(进制编码,进制) a.16进制转10进制(带正负的) 方法:Convert.ToInt16(16进制编码,16); 负数例如:(16进制)FFFF=(10进制)-1    解决:C#代码:Convert.ToInt16("FFFF",16);  结果:-1 正数例如:(16进制)1E0=(10进制)480   解决:C#代

2,8,10,16进制之间的转换

我们常用的进制是“十进制”,就是我们日常所说的逢十进一位,类比1+9=10(很简单) 类比十进制二进制i则是逢而进以也就是1+1=10 , 1+1+1=11,1+1+1+1=100, 1+1+1+1+1=101,1+1+1+1+1+1=110. 我们正常是用的数据为十进制,则十进制的数据转换二进制的数据时用短除 如例题所示,余数从下到上写则为二进制代码,读法就是从前往后念并不是十进制的读法,规律由例题可见当商为偶数对应右边的为0,而商为奇数时则对应的为1 十进制转八进制.十进制转16进制  法则

js 字符串和16进制的互相转换

字符串转16进制 function strToHexCharCode(str) { if(str === "") return ""; var hexCharCode = []; hexCharCode.push("0x"); for(var i = 0; i < str.length; i++) { hexCharCode.push((str.charCodeAt(i)).toString(16)); } return hexCharCo