二进制,十进制,十六进制互相转化

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tigaobansongjiahuan8/article/details/76164988
二进制转化为十进制:(1)从右向左数,确定所数的数字是第几位(编号为n),转化为十进制的时候,用这个数乘以2的n-1次方,以此类推,将各个位上的数所得的式子相加即可,便得到了十进制数。 特殊情况,如:二进制数100,1000,10000,100000等,转化为十进制时,只需要数0的个数即可,有几个0,转化为十进制时,即为2的几次方,所以,二进制数100,转化为十进制为4,也可以参考下表。
例:二进制数0001转化为十进制数:0*2的3次方+0*2的2次方+0*2的1次方+1*2的0次方=1,
                        0101转化为十进制数: 0*2的3次方+1*2的2次方+0*2的1次方+ 1*2的0次方=5,
                                         (2)靠近法,例如,二进制1000001转化为十进制为65,看到二进制1000001首先想到二进制                                                              1000000,而二进制1000001是由1000000+1而来,二进制1000000转化为十进制为64,所以                                                       二进制1000001转化为十进制则为64+1=65
十进制转化为二进制:(1)较基本,较笨拙的一种方法,除二取余法,然后将所得结果逆着写
                                         (2)靠近法,看这个数与哪个数比较接近,与二进制转化为十进制相似,例如,十进制中的65与64                                                      接近,而64转化为二进制为1000000,所以可知65转化为二进制为1000001.

    

二进制

十六进制

十进制

0000

0

0

0001

1

1

0010

2

2

0011

3

3

0100

4

4

0101

5

5

0110

6

6

0111

7

7

1000

8

8

1001

9

9

1010

A

10

1011

B

11

1100

C

12

1101

D

13

1110

E

14

1111

F

15

 十进制与十六进制中,0~9这十个数是相同的,十进制中,10~15对应十六进制中A~F.二进制转化为十六进制时,从右数,每四位一组,找到每组分别对应十六进制中的字符,一一写出即可。例如,二进制数100110101100对应的十六进制数为9AC.

分析:二进制数100110101100将其每四位划分为1001,1010,1100而二进制中1001/1010/1100 分别十六进制中的9、A、C,所以结果为9AC.

二进制加减法:满足“逢二进一”原则

如:100+1=101,101+1=110

解析:第二个式子中,1+1=2,所以应向前进一位,以此类推,便得到结果。

二进制乘法:乘2,加一个0,除以2,减少一个0(注意:二进制中的10相当于十进制中2

解析:如二进制数10,乘以2(1)先不转化,用10*10=100,最后得到100,即为二进制(因为10和10都是二进制,可以将                                                                它们当成十进制数运算)

                                                    (2)可以先将二进制数10转化为十进制数2,乘以2=4,然后将4转化为二进制数为100

十六进制加法:与二进制加法类似,“满十六进一”原则

如:3+7=A,因为A相当于十进制中的10

       F+1=10,因为F相当于十进制中的15,而15+1=16,根据“满十六进一”原则,进一,后面为0,所以为10

       C+A=16H,C+A满十六,进一余六,所以为16,后面的H为16进制标志

        F+F=1E,F+F满十六,进一余十四,十四对应十六进制中的E,所以为1E

        16+1A=30H,运用数学中的竖式 计算,右侧对其,按照“满十六进一”原则即可得出结果

快捷键的使用

CTRL+C――――复制 
CTRL+X――――剪切 
CTRL+V――――粘贴 
CTRL+S――――保存 
CTRL+Z――――撤消 
DELETE―――删除或SHIFT+DELETE―永久删除所选项 
CTRL+A――――选中全部内容. 
ALT+TAB―――切换当前程序 
ALT+F4 ―――关闭当前应用程序 
Windows键+M 最小化所有被打开的窗口. 
Windows键+CTRL+M 重新将恢复上一项操作前窗口的大小和位置 
Windows键+E 打开资源管理器 
Windows键+D显示桌面 
Windows键+F 打开"查找:所有文件"对话框 
Windows键+R 打开"运行"对话框 
Windows键+BREAK 打开"系统属性"对话框 
Windows键+CTRL+F 打开"查找:计算机"

在任务栏上的按钮间循环WINDOWS+TAB 
CTRL+N 新建一个新的文件 
CTRL+O 打开"打开文件"对话框 
CTRL+P 打开"打印"对话框 
CTRL+S 保存当前操作的文件

SHIFT+F10或鼠标右击 打开当前活动项目的快捷菜单 
SHIFT 在放入CD的时候按下不放,可以跳过自动播放CD.在打开word的时候按下不放,可以跳过自启动的宏 
ALT+F4 关闭当前应用程序 
ALT+SPACEBAR 打开程序最左上角的菜单 
ALT+TAB 切换当前程序 
ALT+ESC 切换当前程序 
ALT+ENTER将windows下运行的MSDOS窗口在窗口和全屏幕状态间切换 
PRINTSCREEN 将当前屏幕以图象方式拷贝到剪贴板 
ALT+PRINTSCREEN 将当前活动程序窗口以图象方式拷贝到剪贴板 
CTRL+F4 关闭当前应用程序中的当前文本(如word中) 
CTRL+F6 切换到当前应用程序中的下一个文本(加shift 
可以跳到前一个窗口) 
在IE(网页浏览器)中 
ALT+RIGHTARROW 显示前一页(前进键) 
ALT+LEFTARROW 显示后一页(后退键) 
CTRL+TAB 在页面上的各框架中切换(加shift反向) 
CTRL+B 整理收藏夹 
F5 刷新 
CTRL+F5 强行刷新 
ESC 停止 
F11 全屏显示 

                                                      ASCⅡ表

  二进制,十进制,十六进制互相转化 - 14期 宋家欢 - 宋家欢 廊坊师范学院信息技术提高班十四期


                                8421BCD码(代码表)表(0~9所对应的符号)
 

0

0000

5

0101

1

0001

6

0110

2

0010

7

0111

3

0011

8

1000

4

0100

9

1001



   

    

    

    

    
ASCII码和BCD码的转换 - 宋谋霞 - 宋谋霞
参与评论 您还未登录,请先 登录 后发表或查看评论
二进制数和十六进制数的相互换 c6下完美运行通过 #include <stdio.h> #include <math.h> #include <stdlib.h> #include <string.h> void convert(char *input, char *output) { int len1 = strlen(input); //输入二进制数位数 int pos = len1 / 4 + 1; //输出十六进制数的位数 if (len1 % 4 == 0) { pos = pos - 1; } int j = 0; while (len1>0) { char sum = 0; for (int i=0; i<4 && len1>0; i++, len1--) //从最后起每4位算一次值 { sum = sum + (input[len1-1]-'0')*pow(2, i); } // 换成16进制数表示 sum = sum + '0'; if ('9'<sum && sum<'9'+7) { sum = sum + 7; } else if (sum > '9' + 6) { printf("您输入的不是正确的2进制数!\n"); exit(0); } //十六进制数放到output数组相应位置 output[--pos] = sum; } } int main() { int groupNum = 0; char total[1024] = {0}; scanf("%d", &groupNum); for (int i=1; i<=groupNum; i++) { char input[1024] = {0}; char output[256] = {0}; fflush(stdin); //记得清楚输入缓冲区,否则每次回车会影响 gets(input); convert(input, output); char format[32] = {0}; sprintf(format, "\nCase %d: ", i); strcat(total, format); strcat(total, output); } printf("%s\n", total); } 不分手de恋爱 10:52:05 /二进制数和十六进制数的相互换 c6下完美运行通过 #include <stdio.h> #include <math.h> #include <stdlib.h> #include <string.h> void convert(char *input, char *output) { int len1 = strlen(input); //输入二进制数位数 int pos = len1 / 4 + 1; //输出十六进制数的位数 if (len1 % 4 == 0) { pos = pos - 1; } int j = 0; while (len1>0) { char sum = 0; for (int i=0; i<4 && len1>0; i++, len1--) //从最后起每4位算一次值 { sum = sum + (input[len1-1]-'0')*pow(2, i); } // 换成16进制数表示 sum = sum + '0'; if ('9'<sum && sum<'9'+7) { sum = sum + 7; } else if (sum > '9' + 6) { printf("您输入的不是正确的2进制数!\n"); exit(0); } //十六进制数放到output数组相应位置 output[--pos] = sum; } } int main() { int groupNum = 0; char total[1024] = {0}; scanf("%d", &groupNum); for (int i=1; i<=groupNum; i++) { char input[1024] = {0}; char output[256] = {0}; fflush(stdin); //记得清楚输入缓冲区,否则每次回车会影响 gets(input); convert(input, output); char format[32] = {0}; sprintf(format, "\nCase %d: ", i); strcat(total, format); strcat(total, output); } printf("%s\n", total); }
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值