2 u012624912 u012624912 于 2015.07.20 11:46 提问

16进制转化为10进制问题

16进制 (单字)图片说明 fbb4 转化为10进制结果是 -1100 ,但 如果 是这样的图片说明,就转化 为10进制的就变成 64436了,请问一下这是什么原因?另外 ,我在网上查了一下,大都的转化的结果 都是64436,可我想要的结果 是-1100,请问这个要怎么算出来

5个回答

danielinbiti
danielinbiti   Ds   Rxr 2015.07.20 12:28
已采纳
 fbb4
 变成二进制是
 1111 1011 1011 0100
 再计算规则上取后面1个半字节,
 也就是
 1011 1011 0100
 就是你想要的结果-1100
danielinbiti
danielinbiti 回复千年问心: 不客气,如果有帮助,有时间顺手采纳一下
大约 3 年之前 回复
u012624912
u012624912 回复danielinbiti: 大概理解了,刚刚没想通,谢谢大神哈!!!!
大约 3 年之前 回复
danielinbiti
danielinbiti 回复千年问心: http://zhidao.baidu.com/question/568071311.html如果还不理解,自己找找看看二进制和十进制的相互转换。
大约 3 年之前 回复
u012624912
u012624912 回复danielinbiti: 还是不太懂,请原谅我这个菜鸟太笨,能告诉 我一下大概的算法 吗!!
大约 3 年之前 回复
u012624912
u012624912 还是不太懂,请原谅我这个菜鸟太笨,能告诉 我一下大概的算法 吗!!
大约 3 年之前 回复
danielinbiti
danielinbiti 回复千年问心: 用window自带计算器怎么算的出来,这是编程自己处理,计算器第一位不会认为是符号位,当然是2996了,如果第一位1表示负数,不能计算到里面。
大约 3 年之前 回复
u012624912
u012624912 你好,我用你的方法在window自带的计算器上试了一下,可结果 是2996 我不知道 这是为什么,能麻烦 你说的详细 一点吗?
大约 3 年之前 回复
fang2020
fang2020   2015.07.20 15:16

你应该是用那种带符号的计算方法,就是最高位是1表示负数的那种。而网上很多都是那个不带符号位的转换的。

u012624912
u012624912 网上找了好久,就是没找到那种 方法,后来自己写了一个!!!
接近 3 年之前 回复
CSDNXIAON
CSDNXIAON   2015.07.20 11:52

= 问题 = 请问如何把16进制数转化为10进制数显示输出?谢谢!
有关C/C++中16进制的问题
16进制转化为RGB的宏
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

CSDNXIAON
CSDNXIAON   2015.07.20 11:52

= 问题 = 请问如何把16进制数转化为10进制数显示输出?谢谢!
有关C/C++中16进制的问题
16进制转化为RGB的宏
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

notfindjob
notfindjob   2015.07.25 18:27

四字32位,高位补零导致的

u012624912
u012624912 确实是这样 的
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
将任意进制(2~36)的数转换为10进制,参数k=16就是16进制转10进制
//将任意进制(2~36)的数转换为10进制,参数step=16就是你要的 unsigned long AToD(string dvalue, unsigned step/*2~36*/) { if(step  36) return NULL; unsigned long result = 0; unsigned maxPos = dvalue.length(); unsigned
16进制转化为10进制
软件开发设计,16进制转化为10进制,C++
shell 中转换16进制10进制
一、16进制转换成10进制 printf %d 0xF 15 或者 echo $((16#F)) 15 二、10进制转换成16进制 printf %x 15 f 或者 echo "obase=16;15"|bc F 三、10进制转换成8进制 printf %o 9 11 四、8进制转换成10进制 echo $((8#11)) 9 五、同理二进制转
十六进制转成十进制的java程序实现
十六进制转成十进制的java程序实现,实在是没分了。没办法了。
Android 10进制转16进制
之前由于工作需要,用到串口通信。在用网上谷歌开源的串口通信代码向串口发送指令时,由于机器接收的是16进制的指令。后来发现初始16进制的byte数组经过一系列转换后,变成了10进制的byte数组,当使用OutputStream的write方法向串口发送该数组时,机器没有反应。后来心中便猜想是不是write(1)和write(0x01)到机器那边是不是不一样的数据。结果后来测试果然是不一样的。于是就需...
使用 Shell 运算进行进制转换 16进制转10进制
使用 Shell 运算进行进制转换 工作时候常常遇到一些问题,拿到的数字是16进制的,但是运算的时候是10进制的,shell可以很方便的处理这类的进制转换问题,一种情况是使用 Shell 运算把一个数字从给定的进制转换位十进制。如果数字以运算展开式的形式提供,那么假定它带有十进制符号,除非 它前面带有 0(这种情况假定是八进制)或 0x(这种情况假定是十六进制)。键入以下内容以得到一些八进制
c语言中16进制转换为十进制
方法1:使用进制转换转载:https://zhidao.baidu.com/question/51006929.html#include #include /* 十六进制数转换为十进制数 */ long hexToDec(char *source); /* 返回ch字符在sign数组中的序号 */ int getIndexOfSigns(char ch); int main() {
用Linux/Unix命令把十六进制转换成十进制
那天写个脚本,需要把十六进制的数字转成十进制的打出来,发现不知道要怎么弄,搜一下,原来还是很简单的,比用C语言什么的容易多了,就一些现成的命令就解决了。 先列两种简单的方法: 1) echo 自己就能实现,相当简单。不过,不知道如果要从十进制转换回十六进制能怎么写。     ]$ echo $((0xac))     172 2) printf 也可以哦,十六进制和十进制互相转换都没问题
使用Java把16进制数转化成10进制
在平时的学习中,会碰见一些进制的转换,如16进制转成10进制,那么如何在java编程中实现这些实用的功能,简单写一下。      16进制数转化成10进制       这里采用一个switch来实现,把读入的16进制字符串转化成10进制,思想是把读入的字符串的每一位转化成10进制的数字,然后再进行累加算出代表的10进制的数。        import java.util.*; public
[华为编程题] 16进制转换为10进制
写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 ) Java代码:import java.util.Scanner;public class Main { public static void main(String[] args) { String str = null; Scanner in =new Scanner