-
计算机基础进制转换(二进制、八进制、十进制、十六进制)
2018-09-07 22:27:17十进制转R进制 十进制转二进制 十进制整数转二进制 十进制整数转换成二进制采用“除2倒取余”,十进制小数转换成二进制小数采用“乘2取整”。 例题: 135D = __ B 解析:如下图所示,将135除以2,得余数,直到...1.十进制转R进制
1.1 十进制转二进制
十进制整数转二进制
十进制整数转换成二进制采用“除2倒取余”,十进制小数转换成二进制小数采用“乘2取整”。
例题: 135D = ______ B
**解析:**如下图所示,将135除以2,得余数,直到不能整除,然后再将余数从下至上倒取。得到结果:1000 0111B.
图1.十进制整数转二进制 十进制小数转二进制
十进制小数转换成二进制小数采用 “乘2取整,顺序排列” 法。
具体做法是:
用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数 部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。
然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。
例题: 0.68D = ______ B(精确到小数点后5位)
**解析:**如下图所示,0.68乘以2,取整,然后再将小数乘以2,取整,直到达到题目要求精度。得到结果:0.10101B.
图2.十进制小数转二进制 1.2 十进制转八进制
思路和十进制转二进制一样,参考如下例题:
例题: 10.68D = ______ Q(精确到小数点后3位)
**解析:**如下图所示,整数部分除以8取余数,直到无法整除。小数部分0.68乘以8,取整,然后再将小数乘以8,取整,直到达到题目要求精度。得到结果:12.534Q.
图3.十进制转八进制 1.3 十进制转十六进制
思路和十进制转二进制一样,参考如下例题:
例题: 25.68D = ______ H(精确到小数点后3位)
**解析:**如下图所示,整数部分除以16取余数,直到无法整除。小数部分0.68乘以16,取整,然后再将小数乘以16,取整,直到达到题目要求精度。得到结果:19.ae1H.
图4.十进制转十六进制 # 2.R进制转十进制 ## 2.1 二进制转十进制 **方法为:**把二进制数按权展开、相加即得十进制数。(具体用法如下图)例题: 1001 0110B = ______ D
**解析:**如下图所示。得到结果:150D.
图5.二进制转十进制 2.2 八进制转十进制
八进制转十进制的方法和二进制转十进制一样。
例题: 26Q = ______ D
**解析:**如下图所示。得到结果:22D.
图6.八进制转十进制 2.3 十六进制转十进制
例题: 23daH = ______ D
**解析:**如下图所示。得到结果:9178D.
图7.十六进制转十进制 3.二进制转八进制
二进制转换成八进制的方法是,取三合一法,即从二进制的小数点为分界点,向左(或向右)每三位取成一位。
例题: 1010 0100B = ____Q
**解析:**计算过程如下图所示。得到结果:244Q.
图8.二进制转八进制 4.二进制转十六进制
二进制转换成八进制的方法是,取四合一法,即从二进制的小数点为分界点,向左(或向右)每四位取成一位。
例题: 1010 0100B = ____H
**解析:**计算过程如下图所示。得到结果:a4H.
图9.二进制转十六进制 5.工欲善其事,必先利其器
下面的表格是8位二进制所对应的十进制数值,对进制转换以及类似题目的理解非常有用:
1 1 1 1 1 1 1 1 B 128 64 32 16 8 4 2 1 D 注:B:二进制
D:十进制
例题: 135D = ______ B
**解析:**有了上面二进制对应十进制数值的表格,我们就可以将题目给的十进制135拆分为:128+7,再从表格中找到对应的数值,拼凑即可得到答案。
135D = 128D + 7D = 1000 0111B -
十六进制转八进制,十六进制转十进制
2019-02-26 21:58:141.十六进制转八进制 见例题: 问题描述 给定n个十六进制正整数,输出它们对应的八进制数。 输入格式 输入的第一行为一个正整数n (1<=n<=10)。 接下来n行,每行一个由09、大写字母AF组成的字符...1.十六进制转八进制
见例题:
问题描述
给定n个十六进制正整数,输出它们对应的八进制数。输入格式
输入的第一行为一个正整数n (1<=n<=10)。
接下来n行,每行一个由09、大写字母AF组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式
输出n行,每行为输入对应的八进制正整数。【注意】
输入的十六进制数不会有前导0,比如012A。
输出的八进制数也不能有前导0。样例输入
2
39
123ABC样例输出
71
4435274【提示】
先将十六进制数转换成某进制数,再由某进制数转换成八进制。分析:多少了解点进制之间转换的朋友都知道 要用二进制作为中间值替换,即:先把十六进制转成二进制,每位十六进制正好转成4位二进制,然后再将二进制转成八进制,每三个二进制转成一个八进制。
那么用c++中的string类型或者java中的String类就更加的方便了,我本人对c++不是很熟,只自学了些基本的头文件和输入输出,大家可以看看这个链接:https://www.cnblogs.com/c1299401227/p/5370685.html
题解:
方法一:
适合数字比较小的情况下(显然就不适合这道题,所以我错了):
16进制:%x,8进制:%o#include<stdio.h> #define ll long long int main(){ int T,num; scanf("%d",&T); while(T--){ scanf("%x",&num); printf("%o\n",num); } return 0; }
方法二:
就是c++的string类型了:
转自:https://blog.csdn.net/qq_37962204/article/details/78628508#include<string> #include<cstdio> #include<cmath> #include<iostream> using namespace std; int main(){ int n; string s1,s2; cin >> n; while(n--){ cin >> s1; s2 = ""; for(int i = 0;i<s1.length();i++){ switch(s1[i]){ case '0':s2 += "0000";break; case '1':s2 += "0001";break; case '2':s2 += "0010";break; case '3':s2 += "0011";break; case '4':s2 += "0100";break; case '5':s2 += "0101";break; case '6':s2 += "0110";break; case '7':s2 += "0111";break; case '8':s2 += "1000";break; case '9':s2 += "1001";break; case 'A':s2 += "1010";break; case 'B':s2 += "1011";break; case 'C':s2 += "1100";break; case 'D':s2 += "1101";break; case 'E':s2 += "1110";break; case 'F':s2 += "1111";break; default:break; } } //补成3的位数 if(s2.length()%3 == 1) s2 = "00" + s2; if(s2.length()%3 == 2) s2 = "0" +s2; int sum = 0; int flag = 0; //flag的作用就是防止最后输出前导零 for(int j = 0;j<s2.length()-2;j +=3){ //-2 //sum += 4*(s2[j+2]-'0') + 2*(s2[j+1]-'0') + (s2[j]-'0'); sum = 4*(s2[j]-'0') + 2*(s2[j+1]-'0') + (s2[j+2]-'0'); if(sum) flag = 1; if(flag) cout << sum; } cout << endl; } return 0; }
2.十六进制转十进制
法一:
#include<stdio.h> typedef long long ll ; int main(){ int num; scanf("%x",&num); printf("%lld\n",num); return 0; }
法二:转自:https://blog.csdn.net/zhangjianjun521/article/details/79081435
建议进入链接看完整#include <stdio.h> #include <string.h> /* 十六进制数转换为十进制数 */ long hexToDec(char *source); /* 返回ch字符在sign数组中的序号 */ int getIndexOfSigns(char ch); int main() { char *hex = "75BCD15"; printf("16进制数:\t%s\n", hex); printf("10进制数:\t%ld\n", hexToDec(hex)); return 0; } /* 十六进制数转换为十进制数 */ long hexToDec(char *source) { long sum = 0; long t = 1; int i, len; len = strlen(source); for(i=len-1; i>=0; i--) { sum += t * getIndexOfSigns(*(source + i)); t *= 16; } return sum; } /* 返回ch字符在sign数组中的序号 */ int getIndexOfSigns(char ch) { if(ch >= '0' && ch <= '9') { return ch - '0'; } if(ch >= 'A' && ch <='F') { return ch - 'A' + 10; } if(ch >= 'a' && ch <= 'f') { return ch - 'a' + 10; } return -1; }
-
关于JAVA的输入输出实例化(例子引用十进制转八进制,十六进制)
2020-09-25 16:19:52例题,输入一个整数输出他的八进制数和十六进制数,如果用户输入的不是整数,则提示用户:数据输入格式错误,请重新输入。 【样例输入】103 【样例输出】103八进制表示:0147 103十六进制表示:0x67 代码如下: ...Java输入输出实例化
因为我还是个在校大学生,我的博客也会推一些,我在校学的知识,Python也在研究哟。
例题,输入一个整数输出他的八进制数和十六进制数,如果用户输入的不是整数,则提示用户:数据输入格式错误,请重新输入。
【样例输入】
103
【样例输出】
103八进制表示:0147
103十六进制表示:0x67
代码如下:Scanner sc=new Scanner(System.in); //输入实例化 PrintStream ps=new PrintStream(System.out,true,"UTF-8"); //输出实例化 if(sc.hasNextInt()) { int input=sc.nextInt(); ps.printf(input+"八进制表示:"+"%#o\n", input); ps.printf(input+"十六进制表示:"+"%#x", input); } else { ps.println("数据输入格式错误,请重新输入"); }
-
java十六进制阿斯玛_什么是计算机的数制-计算机中二进制、八进制、十进制、十六进制之间是怎么转换的计算机...
2021-03-17 21:25:2510进制转换成其他的都是除以要转换成的那个数,也就是说转换成二进制的就除以2,转换成八进制的就除以8,转换成十六进制的就除以16,然后倒取余数。具体例题如下10---2:把20转换成二进制20/2=10。。。。。。。。。...10进制转换成其他的都是除以要转换成的那个数,也就是说转换成二进制的就除以2,转换成八进制的就除以8,转换成十六进制的就除以16,然后倒取余数。具体例题如下
10---2:把20转换成二进制
20/2=10。。。。。。。。。。余数为0
10/2=5。
。。。。。。。。。。余数为0
5/2=2。。。。。。。。。。。。余数为1
2/2=1。。。。。。。。。。。。余数为0
1/2=0。。。。。。。。。。。。余数为1
则20换成二进制后是10100
10---8:把20转换成八进制
20/8=2。
。。。。。。。。。。余数为4
2/8=0。。。。。。。。。。。。余数为2
则20转换成八进制后是24
10---16:把20转换成十六进制
20/16=1。。。。。。。。。。余数为4
1/16=0。。。。。。。。。。。
余数为1
则20转换成十六进制后是14
2---10:把二进制数1101转换成十进制
1101=1*2的0次方+0*2的1次方+1*2的2次方+1*2的3次方=13
则1101变成十进制后是13
8---10:把八进制数1340转换成十进制
1340=0*8的0次方+4*8的1次方+3*8的2次方+1*8的3次方=736
则1340变成十进制后是736
16---10:把十六进制数3A4F转换成十进制
3A4F=15*16的0次方+4*16的1次方+10*16的2次方+3*16的3次方=14927
(十六进制中的A是10,F是15)
二进制与八进制的相互转换:
八进制数 0 1 2 3 4 5 6 7
二进制数 000 001 010 011 100 101 110 111
二进制与十六进制的相互转换:
十六进制 0 1 2 3 4 5 6 7 B
二进制数 0000 0001 0010 0011 0100 0101 0110 0111 1011。
全部
-
二进制十进制十六进制
2021-02-17 15:12:06二进制十进制十六进制 推荐视频——链接 十进制 0123456789 这是我们最了解的进制,数学里面都是通用十进制进行计算的 进位规则:满十进一 二进制 01 进位规则:逢二进一 借位规则:借1当2 计算机中的二进制是一个... -
python二进制反码例题_python二进制 八进制 十六进制 进制转换问题 源码反码补码的问题 位运算符的使用...
2020-12-10 19:22:021,进制转换问题1,0b 表示二进制 0 12,0o 表示八进制 0 1 2 3 4 5 6 73,0x 表示十六进制 0 1 2 3 4 5 6 7 8 9 a b c d e f十进制转为其他进制num = 100v1 = bin(num) # 此函数是将十进制转换为二进制print(type... -
小整数十进制转十六进制:(LeetCode 405)
2019-05-22 23:18:16作为一个例题进行分析。 下面是本人仿优秀题解通过的代码: 参考题解: 1.对于正数的处理,只要一直除16取余,按顺序存储余数,最后逆序输出就可以了; 2.但是对于负整数,int在真正存储在内存中的二... -
2017级公共课 计算机应用 第二次作业 十进制 二进制 十六进制 八进制
2018-01-01 00:38:22十进制的数码:0~9,一共10个数码 二进制 :0~1 一共2个数码 八进制 :0~7 一共8个数码 十六进制: 0~9 A~F 对照表 数字的第一位是0,有意义吗?00000000111 00100元钱 100元钱 10000 例题1.1 二进制数(101.101)2 转... -
【Java例题】6.1 进制转换
2019-04-17 15:49:001.进制转换。...说明:仅考虑十、二、八和十六进制。 package chapter6; import java.util.*; public class demo1 { static public void main(String[] args) { Scanner sc=new Scanner(System... -
进制转换的简单运算
2018-06-02 12:16:53常见的进制转换就是十进制、二进制、八进制、十六进制之间的转换,那么如果给你一个等式,让你判断在哪种进制下该等式成立?这类型的题该怎么求解。接下来通过两个例题讲解一下:例1. 如果等式 15*4=112 成立,那么... -
详细介绍计算机常用进制及相互转换且带例题
2020-07-01 17:32:17八进制和十六进制 各种进制之间的转换 进制的由来 结绳计数 12 23 22 21 书契计数 算盘[图片上传失败…(image-6dcd52-1593517616171)] 正字记数法 进制的概念 进位计数法 对于 n 进制 , 逢n 进1 生活中... -
Java工作学习----第四课 进制转换和基本类型拓展 涉及到面试问题 2021.1.29
2021-01-29 20:40:42这里需要强调一下,对于别的进制转换十进制,需要遵循规则刨除0x以后从末尾开始0×16的0次方 1×16的一次方,在进行相加,对于别的进制转换成十进制也适用。 十六进制表示方法:0~9 A~F 八进制 以0开始 010 二进制 ... -
计算机数制与进制的精讲
2010-03-01 16:29:49计算机数制与进制的精讲二进制与十六进制八进制十进制的转换讲解带例题 -
数字逻辑复习总结(超全!内含例题!)
2019-05-30 23:33:58文章目录数字逻辑复习总结第一章 数字逻辑基础二进制、八进制、十进制和十六进制之间的转换8421BCD码与十进制之间的转换十进制与原码、反码、补码之间的转换第二章 逻辑门电路逻辑门TTL与非门MOS逻辑电路 ... -
一周搞定期末考系列之《数字电子技术》
2017-05-23 19:30:342、十进制转其他进制 方法:基数乘除法 整数部分:除r取余,逆序排列 小数部分:乘r取整,顺序排列 3、其他进制转换 二进制转八进制:3位2进制转一位八进制数 二进制转十六进制:4位2进制转一位十六进制数 八... -
软考笔记——数据的表示
2021-03-27 11:06:05第一章 计算机组成与体系——数据的表示 ...2、十进制转R进制(短除法) 例题: 3、二进制转八进制转十六进制 例题: 二、码制 码有8位,8位中的最高位叫符号码,0表示正数,1表示负数 三、浮点数的运算 ... -
基本概念、转换方式和运算法则
2020-10-09 09:10:51二进制,八进制,十进制,十六进制 1.二进制与十进制数间的转换 (1)二进制转换为十进制将每个二进制数按权展开后求和即可.请看例题:把二进制数(101.101)2=122+021+120+12-1+02-2+12-3=(5.625)10 (2)十进制... -
C语言练习1
2020-11-23 22:41:19十进制转二进制: 十六进制转二进制: 2.函数顺序 函数的顺序都是任意的,主函数不一定在最后面。 如果主函数在前面调用其他在它后面的函数,则要将此函数的声明放在主函数之前。 3.C语言中连续比较 例题: 1+2... -
蓝桥练习总结(C语言)——基础篇(二)
2020-02-10 12:03:32进制转换 总体思路(只讨论常用的二、八、十、...先把要转的转换成二进制或十进制,再把二进制或十进制转换为目标进制 蓝桥例题: 以下只是本人想出来的代码,不代表最简单最高效的 十转十六: #include <s... -
一.学习c语言必备的计算机基础知识
2021-03-29 09:29:39一.计算机基础知识 计算机硬件基本组成 以下的图片展示的类容,我也看不太懂,放在这,有空就来看看… ...按照特定顺序组织的计算机数据和指令的集合 ...十进制->十六进制 例题: (103) 10 -> -
观课记录 一
2019-12-01 14:06:44十进制转二进制中的除二倒取余的重点。 运用提问回答、作业讲评、学生交流来巩固加深、了解学生学习情况。 2、十六进制的引入和转换 进行习题、例题的作答引入来由二进制、十进制之间的转换来引出对十 六进制的... -
java字符串大写转小写,小写转大写
2020-03-09 22:00:09JAVA中String类提供了转大写的方法toUpperCase()和转小写的方法toLowerCase() 如下: String a = "ABC"; system.out.println(a.toLowerCase());//abc String b = "abc";...例题,把十进制转化为十六进制 packa... -
页式地址变换——虚地址的计算方法(手写笔记)(操作系统题目解析)
2020-08-18 18:46:26先来看看网上的一道例题(其实网上有解析,但我第一遍没反应过来……所以把现在的理解写下来,...题目有两种出题的方式,一种是给你的虚地址不是十进制,可能是十六进制,八进制等,就比如上面的这题 题目给出的虚拟地 -
国标码、机内码、区位码的关系以及运算
2019-06-18 14:37:21(1)将区位码中的区码和位码分别转换为十六进制数; (2)区位码的十六进制数+2020H = 国标码; (3)国标码+8080H = 机内码; 3、例题 例题:以“大”字为例,它的区内码为2083,求国标码和机内码? 解:20是... -
C语言程序设计标准教程
2009-05-22 18:29:14十六进制长整常数 0X15L (十进制为21) 0XA5L (十进制为165) 0X10000L (十进制为65536) 长整数158L和基本整常数158 在数值上并无区别。但对158L,因为是长整型量,C编译系统将为它分配4个字节存储空间。而对...