给出一个十六进制的数0xFF 0x80 (只有2“位”) 将其转换成有符号的一字节的十进制整数
#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“位”) 将其转换成有符号的一字节的十进制整数的更多相关文章
- C语言-数字字符串转换成这个字符串对应的数字(十进制、十六进制)
数字字符串转换成这个字符串对应的数字(十进制.十六进制) (1)数字字符串转换成这个字符串对应的数字(十进制) 要求:这个字符串参数必须包含一个或者多个数字,函数应该把这些数字转换为整数并且返回这个整 ...
- c#中将IP地址转换成无符号整形数的方法与逆变换方法
我们知道 IP地址就是给每个连接在Internet上的主机分配的一个32bit地址. 按照TCP/IP协议规定,IP地址用二进制来表示,每个IP地址长32bit,比特换算成字节,就是4个字节.而c#中 ...
- item 6: 当auto推导出一个不想要的类型时,使用显式类型初始化的语法
本文翻译自<effective modern C++>,由于水平有限,故无法保证翻译完全正确,欢迎指出错误.谢谢! 博客已经迁移到这里啦 Item 5解释了比起显式指定类型,使用auto来 ...
- 给定一个整数N,找出一个比N大且最接近N,但二进制权值与该整数相同 的数
1,问题描述 给定一个整数N,该整数的二进制权值定义如下:将该整数N转化成二进制表示法,其中 1 的个数即为它的二进制权值. 比如:十进制数1717 的二进制表示为:0000 0110 1011 01 ...
- 一个int 数组,里面数据无任何限制,要求求出所有这样的数a[i],其左边的数都小于等于它,右边的数都大于等于它。能否只用一个额外数组和少量其它空间实现。
一个int数组, 比如 array[],里面数据无任何限制,要求求出 所有这样的数array[i],其左边的数都小于等于它,右边的数都大于等于它.能否只用一个额外数组和少量其它空间实现. 分析:这题很 ...
- 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, ...
- C语言:找出一个大于给定整数m且紧随m的素数,-求出能整除x且不是偶数的数的个数,
//函数fun功能:找出一个大于给定整数m且紧随m的素数,并作为函数值返回. #include <stdlib.h> #include <conio.h> #include & ...
- 用c语言写一个函数把十进制转换成十六进制(转)
#include "stdio.h" int main() { int num=0;int a[100]; int i=0; int m=0;int yushu; char hex ...
- 笔试题&面试题:找出一个数组中第m小的值并输出
题目:找出一个数组中第m小的值并输出. 代码: #include <stdio.h> int findm_min(int a[], int n, int m) //n代表数组长度,m代表找 ...
随机推荐
- Valgrind memcheck 8种错误实例
调不尽的内存泄漏,用不完的Valgrind Valgrind 安装 1. 到www.valgrind.org下载最新版valgrind-3.2.3.tar.bz2 2. 解压安装包:tar –jxvf ...
- python logging 日志模块的配置和使用
import logging logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(filename)s[line:%(line ...
- CSS3基础知识核心动画(二)
Transition过渡 transition-property 过渡属性 all|[attr] transition-duration 过渡时间 transition-delay 延迟时间 tran ...
- 2.mybatis实战教程(mybatis in action)之二:以接口的方式编程
转自:http://www.yihaomen.com/article/java/304.htm 前面一章,已经搭建好了eclipse,mybatis,mysql的环境,并且实现了一个简单的查询. 请注 ...
- 高性能JSON框架之FastJson的简单使用
1.前言 1.1.FastJson的介绍: JSON协议使用方便,越来越流行,JSON的处理器有很多,这里我介绍一下FastJson,FastJson是阿里的开源框架,被不少企业使用,是一个极其优秀的 ...
- Spring boot&Mybatis 启动报错 Failed to auto-configure a DataSource
*************************** APPLICATION FAILED TO START *************************** Description: Fai ...
- Spring Boot @Trasactionl 失效, JDK,CGLIB动态代理
来自: https://www.cnblogs.com/sweetchildomine/p/6978037.html?utm_source=itdadao&utm_medium=referra ...
- vue深入了解组件——自定义事件
一.事件名 跟组件和prop不同,事件名不存在任何自动化的大小写转换.而是触发的事件名需要完全匹配监听这个事件所用的名称.举个例子,如果重复啊一个camelCase名字的事件: this.$emit( ...
- javascript的typeof返回哪些数据类型
javascript的typeof返回哪些数据类型 1.返回数据类型 undefined string boolean number symbol(ES6) Object Function 2.强制类 ...
- 批量导入数据(Mysql)报MySQL server has gone away 问题的解决方法
问题分析 首先度娘:mysql出现ERROR : (2006, 'MySQL server has gone away') 的问题意思就是指client和MySQL server之间的链接断开了. 造 ...