C语言中printf直接打出2进制数是%什么?16进制是什么?
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
using namespace std;
char * get2String(long num)
{
int i = 0;
char * buffer = NULL;
char * temp = NULL;
printf("%d\n", num);
buffer = (char *)malloc(33);
temp = buffer;
for(i=0; i<32; i++)
{
//temp[i] = num & (1 << (31 - i));
//temp[i] = temp[i] >> (31 - i);//(因为定义为char型所以每个数组成员最大为255如果分步移位会造成第一步移位后数据溢出)
temp[i] =(num&(1<<(31-i)))>>(31-i);
temp[i] = (temp[i] == 0) ? '0' : '1';
}
buffer[32] = '\0';
return buffer;
}
char * get16String(long num)
{
int i = 0;
char * buffer = (char *)malloc(11);
char * temp;
buffer[0] = '0';
buffer[1] = 'x';
buffer[10] = '\0';
temp = buffer+2;
for(i=0; i<8; i++)
{
temp[i] = (char)( (num << (4 * i)) >> 28);
temp[i] = temp[i] >= 0 ? temp[i] : temp[i] + 16;
temp[i] = temp[i] < 10 ? temp[i] + 48 : temp[i] + 55;
}
return buffer;
}
int main()
{
char *p = NULL;
char *q = NULL;
int num = 0;
int a = -9;
printf("%d\n", a>>1);
printf("input num: ");
scanf("%d", &num);
p = get16String(num);
q = get2String(num);
printf("%s\n", p);
printf("%s\n", q);
return 0;
}
最新文章
- javascript中使用循环链表实现约瑟夫环问题
- crontab 的使用
- UVA 10453	十七 Make Palindrome
- Java 集合深入理解(9):Queue 队列
- 01.JSP基础语法
- HDU 1428 漫步校园(记忆化搜索,BFS, DFS)
- [原创]SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT 'OpenRowset/OpenDatasource' 的访问
- nss_12 上传文件后返回jsonresult结果,IE中出现文件下载框
- jquery ajax php 无刷新上传文件 带 遮罩 进度条 效果的哟
- Cocos2d-x之Touch事件处理机制
- 「译」如何正确学习JavaScript
- 最短路算法模板合集(Dijkstar,Dijkstar(优先队列优化), 多源最短路Floyd)
- 开始使用Logstash
- jquery css hover
- LAMP部署
- js基础——运算符
- nginx笔记----解决windows80端口被iis占用
- 常见的爬虫分析库(1)-Python3中Urllib库基本使用
- Hibernate的核心对象关系映射
- 在HP-UX 11.11用swinstall安装gcc 4.2.3