-2147483647十进制转换成二进制16进制是多少?

&nbsp>&nbsp
&nbsp>&nbsp
&nbsp>&nbsp
10进制转换为16进制
摘要:10进制转换为16进制,有需要的朋友可以参考下。问题描述十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。给出一个非负整数,将它表示成十六进制的形式。输入格式输入包含一个非负整数a,表示要转换的数。0&=a&
10进制转换为16进制,有需要的朋友可以参考下。
十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。
给出一个非负整数,将它表示成十六进制的形式。
输入包含一个非负整数a,表示要转换的数。0&=a&=
输出这个整数的16进制表示
/***第一次忽略了输入为0***********/import java.util.*;import java.lang.StringBpublic class Main { public static void main(String args[]) { String member[]={&0&,&1&,&2&,&3&,&4&,&5&,&6&,&7&,&8&,&9&, &A&,&B&,&C&,&D&,&E&,&F&}; Scanner sc=new Scanner(System.in); long val_dec =sc.nextLong(); StringBuilder str_val_hex=new StringBuilder(); if(val_dec!=0) { while(val_dec!=0) { str_val_hex.append(member[(int)(val_dec % 16)]); val_dec=val_dec/16; } System.out.println(str_val_hex.reverse()); } else { System.out.println(0); } sc.close(); }}
以上是的内容,更多
的内容,请您使用右上方搜索功能获取相关信息。
若你要投稿、删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内给你回复。
云服务器 ECS
可弹性伸缩、安全稳定、简单易用
&40.8元/月起
预测未发生的攻击
&24元/月起
邮箱低至5折
推荐购买再奖现金,最高25%
&200元/3月起
你可能还喜欢
你可能感兴趣
阿里云教程中心为您免费提供
10进制转换为16进制相关信息,包括
的信息,所有10进制转换为16进制相关内容均不代表阿里云的意见!投稿删除文章请联系邮箱:zixun-group@service.aliyun.com,工作人员会在五个工作日内答复
售前咨询热线
支持与服务
资源和社区
关注阿里云
International[分享]批处理实现十六进制码与十进制码互转 - BAT求助&讨论 -
批处理之家 批处理_BAT_CMD_DOS_VBS_Perl_Python_PowerShell - Powered by Discuz!
帖子125&积分463&技术2 &捐助0 &注册时间&
[分享]批处理实现十六进制码与十进制码互转
级别不够,只能发在这里了。
@echo off
:: wangwei qq
(chcp 437 &graftabl 936)&nul
SET SYB=A100;0AEB 30 B8 CD00;B833 0001 33CD 05B8 CD00 A933 ;E086 300D A330 B3 18E8 A300;B3 0EE8 A300
02BA;CD01 B421 CD4C F621 08F3 74E4 FE02 FEC0;88C0 B1C4 D204 25E8 0F0F 300D 3C30 07 39FC
C307&&;
SET V=;RCX;006C;N mouse.W;Q
(ECHO.%SYB:;=&ECHO.DW %&ECHO.%V:;=&ECHO.%)|DEBUG&NUL
:fhzb
cls
@echo.
@echo& && && && && &&&十六进制码与十进制码互转
@echo.
@echo& &十六进制转十进制码
@echo.
@echo& &十进制转十六进制码
for /f &tokens=1-3& %%1 in ('mouse.com') do (set /a X=0x%%2,Y=0x%%3)&&2&nul
if %X% GTR 3 if %X% LSS 20&&if %Y% EQU 4 goto slzs
if %X% GTR 3 if %X% LSS 20&&if %Y% EQU 6 goto szsl
goto :fhzb
:slzs
cls
@echo.
@echo& &十六进制转十进制码
@echo.
set/p file=输入要处理的十六进制文件:
::按空格分开为行
cd.&temp.txt
for /f&&&delims=& %%i in (%file%) do (
&&for %%a in (%%i) do echo %%a&&temp.txt
)
cd.&十进制.txt
setlocal EnableDelayedExpansion
for /f&&%%a in (temp.txt) do (
& && &&&set s=%%a
& && &&&set /a s=0x!s!
& && &&&set /p=!s! &nul &&十进制.txt
)
del temp.txt
goto:eof
:szsl
@echo off
cls
@echo.
@echo& &十进制转十六进制码(仅适合于十六进制转换的十进制码)
@echo.
set/p file=输入要处理的十进制文件:
::按空格分开为行
setlocal EnableDelayedExpansion
cd.&temp.txt
for /f&&&delims=& %%i in (%file%) do (
&&for %%a in (%%i) do echo %%a&&temp.txt
)
cd.&十六进制.txt
for /f&&%%a in (temp.txt) do (
set&&qwe=%%a
set&&qwe=!qwe!
call :duon %qwe%
set /p=!cdm! &nul &&十六进制.txt
)
del temp.txt
goto:eof
:duon
set /a y= qwe%%16
set /a ya=qwe/16%%16
set&&m=ABCDEF
set&&cdm=!m:~%ya%,1!!m:~%y%,1!
goto:eof复制代码
----------
如果你要任意十进制转十六进制,可以将长度计算修改即可。有效处理为
set /a y= qwe%%16
set /a ya=qwe/16%%16
set /a yb=qwe/256%%16
set /a yc=qwe/4096%%16
set /a yd=qwe/65536%%16
set /a ye=qwe/
set /a yf=qwe/
set /a yg=qwe/%%16
set&&m=ABCDEF
set&&cdm=!m:~%yg%,1!!m:~%yf%,1!!m:~%ye%,1!!m:~%yd%,1!!m:~%yc%,1!!m:~%yb%,1!!m:~%ya%,1!!m:~%y%,1!
[ 本帖最后由 ZJHJ 于
22:33 编辑 ]
帖子280&积分800&技术19 &捐助0 &注册时间&
帖子423&积分1094&技术57 &捐助0 &注册时间&
没必要搞这么复杂吧?
这些代码前人写过 n遍了.....
原理5. 十 ----& 十六
  (25.625)(十)
  整数部分:
  25/16=1......9
  1/16 =0......1
  然后我们将余数按从下往上的顺序书写就是:19,那么这个19就是十进制25的十六进制形式
  小数部分:
  0.625*16=10(即十六进制的A或a)
  然后我们将整数部分按从上往下的顺序书写就是:A,那么这个A就是十进制0.625的十六进制形式
  所以:(25.625)(十)=(19.A)(十六)
我自己写的封装模块:,=:::=======================10进制转16进制==============================
::返回值在中%sum%
:dec2hex
if not &%frist_BL%&==&1& (set &frist_BL=1&&set &sum=&&set &yu_num=&&set /a sor_num=%*)
set /a yu_num= %sor_num% %% 16
set /a sor_num /= 16
call:set_YU %yu_num%
set sum=%ret%%sum%
if %sor_num% lss 16 (set &end_BL=1&&call:set_YU %sor_num%) else (set &end_BL=0&)
if &%end_BL%&==&1& (set sum=%ret%%sum%&set &frist_BL=0&&goto:eof)
goto dec2hex
:set_YU
set ret=
if &%1& == &10& set ret=A
if &%1& == &11& set ret=B
if &%1& == &12& set ret=C
if &%1& == &13& set ret=D
if &%1& == &14& set ret=E
if &%1& == &15& set ret=F
if %1 lss 10 set ret=%1
goto :eof
::=======================END CODE===============================复制代码16转10&&对于P来说不存在呀
set/a decNumber=0xhNumber
帖子423&积分1094&技术57 &捐助0 &注册时间&
re: mouse.com 楼主能否说明一下, 调用鼠标功能中断INT 33H 干什么呀?
.bat运行后 ntvdm.exe 占用100% 程序无反应.
[ 本帖最后由 hfg1977 于
00:57 编辑 ]
帖子1769&积分8797&技术351 &捐助0 &注册时间&
可以处理大点的数@echo off&setlocal enabledelayedexpansion
set/p s=输入转换数:
set/p x=请输入要转换的几进制?
set str=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
:lp
set /a &n=8189,m=0,r=0&
for /l %%a in (1,1,14) do (
& &&&set /a &u=(n+m)/2&
& &&&for %%i in (!u!) do if &!s:~%%i!& equ && (set /a n=u) else set /a m=u
)
for /l %%i in (0,1,%u%) do (
& &rem set/a &n=!s:~%%i,1!+(r*10),r=n&1,n&&=1&
& &set/a &n=!s:~%%i,1!+(r*10),r=n%%x,n/=x&
& &set v=!v!!n!
)
& &set b=!str:~%r%,1!!b!
& &if &!v:0=!& neq && set s=!v!&set &v=&&goto lp
& &echo &!b!&
pause复制代码
帖子423&积分1094&技术57 &捐助0 &注册时间&
看到楼上用字符串截取,我也跟着改进下 :)
省了不少代码呀 哈哈 感谢了::==================10进制转16进制==============================
::返回值在中%ret%
:dec2hex
set str=ABCDEF&set &ret=&
set/a d=%~1
:lp
set/a y=!d!%%16,d/=16
call set ret=%%str:~!y!,1%%!ret!
if !d! NEQ 0 goto:lp
goto :eof
::=======================END CODE===============================复制代码
帖子508&积分1475&技术82 &捐助0 &注册时间&
本帖最后由 qzwqzw 于
09:43 编辑
也顺便分享一下自己用过的两段代码吧
算法都差不太多,只不过稍微精简了些代码@echo off & setlocal EnableDelayedExpansion
set #i=22345
set $t=ABCDEF
set /a &#1=#i&&12,#2=(#i&0xF00)&&8,#3=(#i&0xF0)&&4,#4=#i&0xF&
set #o=!$t:~%#1%,1!!$t:~%#2%,1!!$t:~%#3%,1!!$t:~%#4%,1!
echo %#i%=0x%#o%
pause复制代码:dec2hex - %1 十进制数值 %2 十六进制变量名
setlocal EnableDelayedExpansion
set #i=%1
set $t=ABCDEF
for /l %%i in (1,1,8) do set/a&#%%i=#i&15,#i&&=4&&for %%e in (!#%%i!) do set #o=!$t:~%%e,1!!#o!
endlocal & set %2=%#o%复制代码
catch you!技术 + 1
天的白色影子
帖子6293&积分18590&技术948 &捐助100 &注册时间&
& & 您这潜水艇是核动力的哈哈,一潜就是好几年
帖子6293&积分18590&技术948 &捐助100 &注册时间&
hta:@echo off
for /f %%a in ('&mshta http://bathome.net/s/hta/ 123456 .toString(16)&') do echo 0x%%a复制代码
帖子508&积分1475&技术82 &捐助0 &注册时间&
:) 是好久没来了
话说9楼用到的在线HTA脚本似乎有一段时间了
有点“云计算”的意思
不知道是谁的大作啊?
天的白色影子
帖子1173&积分1640&技术148 &捐助0 &注册时间&
& & :lol 就他.
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行
帖子508&积分1475&技术82 &捐助0 &注册时间&
嗯,刚才翻了翻HTA库的源码
顺便也了解了一下该项目的源流
bat、vbs、js 原生混编
批处理之家 js 在线脚本库
确实奇思妙想浩帙鸿篇
几位主创均非一般
尤其CrLF更是非凡
天的白色影子
帖子508&积分1475&技术82 &捐助0 &注册时间&
本帖最后由 qzwqzw 于
11:33 编辑
最后还是回归楼主十进制转换的正题吧
刚才简单调整了一下自己的第二段代码
查表替换的思路也是拾人牙慧
个人代码还是以实用为主效率为辅:dec2hex - %1 十进制数值 %2 十六进制变量名
setlocal EnableDelayedExpansion
set n=%1
for /l %%i in (1,1,8) do set/a&H%%i=n&15,n&&=4&&set o=!H%%i!:!o!
for %%e in (&10:=A& &11:=B& &12:=C& &13:=D& &14:=E& &15:=F& &:=&) do set o=!o:%%~e!
endlocal & set %2=%o%复制代码
天的白色影子
帖子6293&积分18590&技术948 &捐助100 &注册时间&
这评价好高,受精若宠受宠若惊...
其实原帖是这个:
第三方工具的资源来自 Batch-CN 项目:
当然,最初的起源还是 est 的 mshta vbscript: 用法
[通过 QQ、MSN 分享给朋友]没有一开始的大牛,先做好自己的小菜
java中进制的转换,Byte与16进制的转换
java中对于进制的转换有很多方式,其中对于常见的基本的二进制 八进制 十进制 十六进制等的转换有对于的包装类实现,不需要通过二外的算法来进行实现,具体如下:
首先关于最简单的二进制转换的方法有:
十进制转成十六进制:
String Integer.toHexString(int i)
十进制转成八进制
String Integer.toOctalString(int i)
十进制转成二进制
String Integer.toBinaryString(int i)
十六进制转成十进制
Integer.valueOf("FFFF",16).toString()
//不能处理带前缀的情况 0x
八进制转成十进制
Integer.valueOf("76",8).toString()
//前缀0可以被处理
二进制转十进制
Integer.valueOf("0101",2).toString()
有什么方法可以直接将2,8,16 进制直接转换为10进制的吗 ?
java.lang.Integer类
parseInt(String s,
int radix)
使用第二个参数指定的基数,将字符串参数解析为有符号的整数。
examples from jdk:
parseInt("0", 10) returns 0
parseInt("473", 10) returns 473
parseInt("-0", 10) returns 0
parseInt("-FF", 16) returns -255
parseInt("1100110", 2) returns 102
parseInt("", 10) returns
parseInt("-", 10) returns -
parseInt("", 10)throwsa NumberFormatException
parseInt("99",throwsa NumberFormatException
parseInt("Kona", 10)throwsa NumberFormatException
parseInt("Kona", 27)returns 411787
进制转换如何写(二,八,十六)不用算法
Integer.toBinaryString
Integer.toOctalString
Integer.toHexString
然后是介绍java中的byte与十六进制数的转换
原理分析:
Java中的byte是由8个bit组成的,而16进制即16中状态,它是由4个bit来表示的,因为24=16。所以我们可以把一个byte转换成两个用16进制字符,即把高4位和低4位转换成相应的16进制字符,并组合这两个16进制字符串,从而得到byte的16进制字符串。同理,相反的转换也是将两个16进制字符转换成一个byte。
在Java中字节与十六进制的相互转换主要思想有两点: 1、二进制字节转十六进制时,将字节高位与0xF0做"&"操作,然后再左移4位,得到字节高位的十六进制A;将字节低位与0x0F做"&"操作,得到低位的十六进制B,将两个十六进制数拼装到一块AB就是该字节的十六进制表示。
2、十六进制转二进制字节时,将十六进制字符对应的十进制数字右移动4为,得到字节高位A;将字节低位的十六进制字符对应的十进制数字B与A做"|"运算,即可得到十六进制的二进制字节表示
其中一种转换的函数如下:
* @param bytes
* @return 将二进制转换为十六进制字符输出
private static String hexStr =
public static String BinaryToHexString(byte[] bytes){
String result = "";
String hex = "";
for(int i=0;i&bytes.i++){
//字节高4位
&strong&hex = String.valueOf(hexStr.charAt((bytes[i]&0xF0)&&4)); &/strong&
//字节低4位
&strong&hex += String.valueOf(hexStr.charAt(bytes[i]&0x0F)); &/strong&
* @param hexString
* @return 将十六进制转换为字节数组
public static byte[] HexStringToBinary(String hexString){
//hexString的长度对2取整,作为bytes的长度
int len = hexString.length()/2;
byte[] bytes = new byte[len];
byte high = 0;//字节高四位
byte low = 0;//字节低四位
for(int i=0;i&i++){
//右移四位得到高位
high = (byte)((hexStr.indexOf(hexString.charAt(2*i)))&&4);
low = (byte)hexStr.indexOf(hexString.charAt(2*i+1));
bytes[i] = (byte) (high|low);//高地位做或运算
还有一种类似的方法:
&span style="font-size:14"&* Convert byte[] to hex string.这里我们可以将byte转换成int,然后利用Integer.toHexString(int)来转换成16进制字符串。
* @param src byte[] data
* @return hex string
public static String bytesToHexString(byte[] src){
StringBuilder stringBuilder = new StringBuilder("");
if (src == null || src.length &= 0) {
for (int i = 0; i & src. i++) {
int v = src[i] & 0xFF;
String hv = Integer.toHexString(v);
if (hv.length() & 2) {
stringBuilder.append(0);
stringBuilder.append(hv);
return stringBuilder.toString();
* Convert hex string to byte[]
* @param hexString the hex string
* @return byte[]
public static byte[] hexStringToBytes(String hexString) {
if (hexString == null || hexString.equals("")) {
hexString = hexString.toUpperCase();
int length = hexString.length() / 2;
char[] hexChars = hexString.toCharArray();
byte[] d = new byte[length];
for (int i = 0; i & i++) {
int pos = i * 2;
d[i] = (byte) (charToByte(hexChars[pos]) && 4 | charToByte(hexChars[pos + 1]));
* Convert char to byte
* @param c char
* @return byte
private byte charToByte(char c) {
return (byte) "ABCDEF".indexOf(c);
&/span&两种方式类似,这里注意下
上面是将byte[]转化十六进制的字符串,注意这里b[ i ] &
0xFF将一个byte和 0xFF进行了与运算,然后使用Integer.toHexString取得了十六进制字符串,可以看出b[ i ] & 0xFF运算后得出的仍然是个int,那么为何要和 0xFF进行与运算呢?直接 Integer.toHexString(b[ i ]);,将byte强转为int不行吗?答案是不行的.
其原因在于:1.byte的大小为8bits而int的大小为32bits2.java的二进制采用的是补码形式
所以与负数&的时候负数会自动给补码补位1,这样就会有误差
而0xff默认是整形,所以,一个byte跟0xff相与会先将那个byte转化成整形运算,这样,结果中的高的24个比特就总会被清0,于是结果总是我们想要的。
还有一些网上总结的方法:
字符串转换成十六进制字符串方法1:
* 字符串转换成十六进制字符串
public static String str2HexStr(String str) {
char[] chars = "ABCDEF".toCharArray();
StringBuilder sb = new StringBuilder("");
byte[] bs = str.getBytes();
for (int i = 0; i & bs. i++) {
bit = (bs[i] & 0x0f0) && 4;
sb.append(chars[bit]);
bit = bs[i] & 0x0f;
sb.append(chars[bit]);
return sb.toString();
十六进制字符串转换成为数组方法1:
* 把16进制字符串转换成字节数组
* @param hexString
* @return byte[]
public static byte[] hexStringToByte(String hex) {
int len = (hex.length() / 2);
byte[] result = new byte[len];
char[] achar = hex.toCharArray();
for (int i = 0; i & i++) {
int pos = i * 2;
result[i] = (byte) (toByte(achar[pos]) && 4 | toByte(achar[pos + 1]));
private static int toByte(char c) {
byte b = (byte) "ABCDEF".indexOf(c);
数组转换成十六进制字符串方法1:
* 数组转换成十六进制字符串
* @param byte[]
* @return HexString
public static final String bytesToHexString(byte[] bArray) {
StringBuffer sb = new StringBuffer(bArray.length);
for (int i = 0; i & bArray. i++) {
sTemp = Integer.toHexString(0xFF & bArray[i]);
if (sTemp.length() & 2)
sb.append(0);
sb.append(sTemp.toUpperCase());
return sb.toString();
byte[]数组转换成十六进制字符串方法2:
* 数组转成十六进制字符串
* @param byte[]
* @return HexString
public static String toHexString1(byte[] b){
StringBuffer buffer = new StringBuffer();
for (int i = 0; i & b. ++i){
buffer.append(toHexString1(b[i]));
return buffer.toString();
public static String toHexString1(byte b){
String s = Integer.toHexString(b & 0xFF);
if (s.length() == 1){
return "0" +
十六进制字符串转换字符串方法1:
* 十六进制字符串转换成字符串
* @param hexString
* @return String
public static String hexStr2Str(String hexStr) {
String str = "ABCDEF";
char[] hexs = hexStr.toCharArray();
byte[] bytes = new byte[hexStr.length() / 2];
for (int i = 0; i & bytes. i++) {
n = str.indexOf(hexs[2 * i]) * 16;
n += str.indexOf(hexs[2 * i + 1]);
bytes[i] = (byte) (n & 0xff);
return new String(bytes);
十六进制字符串转换字符串方法2:
* 十六进制字符串转换字符串
* @param HexString
* @return String
public static String toStringHex(String s) {
byte[] baKeyword = new byte[s.length() / 2];
for (int i = 0; i & baKeyword. i++) {
baKeyword[i] = (byte) (0xff & Integer.parseInt(s.substring(
i * 2, i * 2 + 2), 16));
} catch (Exception e) {
e.printStackTrace();
s = new String(baKeyword, "utf-8");// UTF-16le:Not
} catch (Exception e1) {
e1.printStackTrace();
没有更多推荐了,vb6.0 十六进制转化成十进制的代码
本回答由提问者推荐
var sogou_ad_id=731547;
var sogou_ad_height=160;
var sogou_ad_width=690;易语言的十六进制转换十进制的问题,请高手帮忙解决一下_百度知道
易语言的十六进制转换十进制的问题,请高手帮忙解决一下
转换成十进制 得出来的结果是 -1 明显是错误的,计算器得出的结果是请问,如何才能得出计算器算出的结果. 请给出源码
我有更好的答案
整数型 最大值是“”你的返回值超出范围了,将返回值改为“长整数型”即可!如图:
采纳率:69%
.版本 2.子程序 进制_十六到十, 长整数型, 公开, 将16进制文件转换到10进制数值(返回十进制数).参数 文本, 文本型.局部变量 i, 整数型.局部变量 t, 文本型.局部变量 结果, 长整数型.局部变量 局_文本, 文本型t = “ABCDEF”局_文本 = 到大写 (文本).计次循环首 (取文本长度 (文本), i)
结果 = 结果 × 16 + 寻找文本 (t, 取文本中间 (局_文本, i, 1), , 假) - 1.计次循环尾 ()返回 (结果)返回长整数就可以了!
超范围了,把 返回值 和 结果 改成 双精度小数型
为您推荐:
其他类似问题
十六进制转换的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 十六进制转换成十进制 的文章

 

随机推荐