#include <stdio.h>
#include<iostream>
#include <stdlib.h>
#include<string.h>
using namespace std;
int main()
{
char ch[8];
char ch2[8]={'0','0','0','0','0','0','0','0'};

ltoa(strtol("0xba",'\0',16),ch,2);
//cout<<strlen(ch);
for(int i=8-strlen(ch),j=0;i<8;i++,j++)
{

ch2[i]=ch[j];
}

if(ch2[0]=='1')
{
cout<<"minus:"<<endl;
cout<<"-"<<(256-strtol("0xba",'\0',16)) <<endl;
}
else{
cout<<"+:"<<endl;
cout<<strtol("0xba",'\0',16)<<endl;
}
return 0;
}

^(* ̄(oo) ̄)^:红色数字部分为const char*类型;

主要应用的函数为:strtol;ltoa

第一个函数是将第一个参数里的字符串转换为十进制,遇到\0结束,后边的数字2-36,指的是前边的字符串代表的数字进制,而不是将其转换为某进制。

strtol是将第一个参数的数字转换成第三个参数的进制并存入第二个参数的数组里。char *ltoa(long value,char *string,int radix)

原码,反码,补码,运算不介绍,这里只是采取投机取巧的方式。。。。

之所以用了ch2是因为ltoa只是把二进制从一开始的有效位赋给ch从零开始。前边如果有0 ,它并没有进行赋值。

例如:long(strtol)转换后的二进制为:00010101---》ltoa只把10101赋给了ch[0]=1,ch[1]=0,ch[2]=1,ch[3]=0,ch[4]=1....ch[5]=null.....以此类推。。。。。。

给出一个十六进制的数0xFF 0x80 (只有2“位”) 将其转换成有符号的一字节的十进制整数的更多相关文章

  1. C语言-数字字符串转换成这个字符串对应的数字(十进制、十六进制)

    数字字符串转换成这个字符串对应的数字(十进制.十六进制) (1)数字字符串转换成这个字符串对应的数字(十进制) 要求:这个字符串参数必须包含一个或者多个数字,函数应该把这些数字转换为整数并且返回这个整 ...

  2. c#中将IP地址转换成无符号整形数的方法与逆变换方法

    我们知道 IP地址就是给每个连接在Internet上的主机分配的一个32bit地址. 按照TCP/IP协议规定,IP地址用二进制来表示,每个IP地址长32bit,比特换算成字节,就是4个字节.而c#中 ...

  3. item 6: 当auto推导出一个不想要的类型时,使用显式类型初始化的语法

    本文翻译自<effective modern C++>,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 博客已经迁移到这里啦 Item 5解释了比起显式指定类型,使用auto来 ...

  4. 给定一个整数N,找出一个比N大且最接近N,但二进制权值与该整数相同 的数

    1,问题描述 给定一个整数N,该整数的二进制权值定义如下:将该整数N转化成二进制表示法,其中 1 的个数即为它的二进制权值. 比如:十进制数1717 的二进制表示为:0000 0110 1011 01 ...

  5. 一个int 数组,里面数据无任何限制,要求求出所有这样的数a[i],其左边的数都小于等于它,右边的数都大于等于它。能否只用一个额外数组和少量其它空间实现。

    一个int数组, 比如 array[],里面数据无任何限制,要求求出 所有这样的数array[i],其左边的数都小于等于它,右边的数都大于等于它.能否只用一个额外数组和少量其它空间实现. 分析:这题很 ...

  6. CodeForces 702B Powers of Two【二分/lower_bound找多少个数/给出一个数组 求出ai + aj等于2的幂的数对个数】

    B. Powers of Two   You are given n integers a1, a2, ..., an. Find the number of pairs of indexes i,  ...

  7. C语言:找出一个大于给定整数m且紧随m的素数,-求出能整除x且不是偶数的数的个数,

    //函数fun功能:找出一个大于给定整数m且紧随m的素数,并作为函数值返回. #include <stdlib.h> #include <conio.h> #include & ...

  8. 用c语言写一个函数把十进制转换成十六进制(转)

    #include "stdio.h" int main() { int num=0;int a[100]; int i=0; int m=0;int yushu; char hex ...

  9. 笔试题&amp;面试题:找出一个数组中第m小的值并输出

    题目:找出一个数组中第m小的值并输出. 代码: #include <stdio.h> int findm_min(int a[], int n, int m) //n代表数组长度,m代表找 ...

随机推荐

  1. shell 4注释

    单行注释 每一行加一个#号. #shell #!/bin/sh echo "#" #轻轻的我走了 #正如我轻轻的来 #我挥一挥衣袖 #不带走一片云彩 echo "#&qu ...

  2. windows下查看端口被哪个进程占用

    1.netstat -anp|findstr "port" 得到进程id 2.tasklist|findstr "pid" 得到是进程名

  3. 1109 Group Photo (25 分)

    1109 Group Photo (25 分) Formation is very important when taking a group photo. Given the rules of fo ...

  4. vcenter修改用户密码的方法

    https://192.168.x.x:9443登录,必须用administrator@vsphere.local登录,不能用root用户登录. 主页-系统设置- Single Sing-On-用户和 ...

  5. 理解Storm Metrics

    在hadoop中,存在对应的counter计数器用于记录hadoop map/reduce job任务执行过程中自定义的一些计数器,其中hadoop任务中已经内置了一些计数器,例如CPU时间,GC时间 ...

  6. tf.matmul函数和tf.multiply函数

    tf.matmul(a,b,transpose_a=False,transpose_b=False, adjoint_a=False, adjoint_b=False, a_is_sparse=Fal ...

  7. VS:error C3872: '0xe044': this character is not allowed in an identifier解决方法

     从网上粘贴代码到编译器中直接编译的话,会报这个错误,但是代码看上去是没有问题的,实际的原因是因为我们粘贴代码的时候粘贴了中文字符进来. 解决方法:就是把这段代码放到记事本里,选择替换把中文输入空 ...

  8. logger常用方法

    #!/usr/bin/env python # encoding: utf-8  # Date: 2018/5/25 import loggingfrom logging import handler ...

  9. 2018-2019-2 《网络对抗技术》Exp6 信息搜集与漏洞扫描 Week9 20165233

    Exp6 信息搜集与漏洞扫描 目录 一.基础问题 二.实验步骤 实验点一:各种搜索技巧的应用 实验点二:DNS IP注册信息的查询 实验点三:基本的扫描技术:主机发现.端口扫描.OS及服务版本探测.具 ...

  10. WPF 自定义属性

    做了一个自定义控件和一个自定义Grid,里面的元素可以随着绑定属性变化: 效果图(一定滑块): 关键代码: 1.自定义属性代码: public class MyGrid : Grid { public ...