社区
C#
帖子详情
c#问题
a276181298
2009-12-12 06:44:23
二进制、八进制、十六进制.十进制之间咋样互相转换
...全文
133
17
打赏
收藏
c#问题
二进制、八进制、十六进制.十进制之间咋样互相转换
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yejb0908
2009-12-12
打赏
举报
回复
[Quote=引用 7 楼 wuyq11 的回复:]
Console.WriteLine(Convert.ToString(30, 2));
Console.WriteLine(Convert.ToString(30, 8));
Console.WriteLine(Convert.ToString(30, 16));
Console.WriteLine(Convert.ToInt32(”100111101″, 2));
Console.WriteLine(Convert.ToInt32(”30″, 8));
Console.WriteLine(Convert.ToInt32(”FF”, 16));
[/Quote]
学习了!
a276181298
2009-12-12
打赏
举报
回复
要是有小数咋样转呢 。。
Jave.Lin
2009-12-12
打赏
举报
回复
值得参考。
沐浴-vip
2009-12-12
打赏
举报
回复
[Quote=引用 13 楼 a276181298 的回复:]
如果是二进制转八进制,可以先把二进制转十进制,再从十进制转八进制;其他情况亦如此 ;;;;一定要这样吗
[/Quote]
当然也可以按照4楼介绍的算法,自己写个转换函数
a276181298
2009-12-12
打赏
举报
回复
如果是二进制转八进制,可以先把二进制转十进制,再从十进制转八进制;其他情况亦如此 ;;;;一定要这样吗
tianliang1
2009-12-12
打赏
举报
回复
[Quote=引用 7 楼 wuyq11 的回复:]
Console.WriteLine(Convert.ToString(30, 2));
Console.WriteLine(Convert.ToString(30, 8));
Console.WriteLine(Convert.ToString(30, 16));
Console.WriteLine(Convert.ToInt32(”100111101″, 2));
Console.WriteLine(Convert.ToInt32(”30″, 8));
Console.WriteLine(Convert.ToInt32(”FF”, 16));
[/Quote]
厉害。。。
a276181298
2009-12-12
打赏
举报
回复
[Quote=引用 5 楼 zjx311989 的回复:]
楼上很详细了...顶上
[/Quote]还有呢 。。。。
yifabeiyong1
2009-12-12
打赏
举报
回复
4楼牛哦 呵呵 看4楼就好了
易发国际
沐浴-vip
2009-12-12
打赏
举报
回复
[Quote=引用 8 楼 momingchuangru 的回复:]
int n = 11;
Console.WriteLine(Convert.ToString(n,2));//十进制转二进制
Console.WriteLine(Convert.ToString(n, 8));//十进制转八进制
Console.WriteLine(Convert.ToString(n, 10));//
十进制int转十进制string
这里不好意思,写错了~!
Console.WriteLine(Convert.ToString(n,16));//十进制转十六进制
注:如果是二进制转八进制,可以先把二进制转十进制,再从十进制转八进制;其他情况亦如此
[/Quote]
沐浴-vip
2009-12-12
打赏
举报
回复
int n = 11;
Console.WriteLine(Convert.ToString(n,2));//十进制转二进制
Console.WriteLine(Convert.ToString(n, 8));//十进制转八进制
Console.WriteLine(Convert.ToString(n, 10));//十进制string转十进制int
Console.WriteLine(Convert.ToString(n,16));//十进制转十六进制
注:如果是二进制转八进制,可以先把二进制转十进制,再从十进制转八进制;其他情况亦如此
wuyq11
2009-12-12
打赏
举报
回复
Console.WriteLine(Convert.ToString(30, 2));
Console.WriteLine(Convert.ToString(30, 8));
Console.WriteLine(Convert.ToString(30, 16));
Console.WriteLine(Convert.ToInt32(”100111101″, 2));
Console.WriteLine(Convert.ToInt32(”30″, 8));
Console.WriteLine(Convert.ToInt32(”FF”, 16));
沐浴-vip
2009-12-12
打赏
举报
回复
string base2 = "11";
string base8 = "11";
string base10 = "11";
string base16 = "11";
int b2=Convert.ToInt32(base2,2);//二进制转换十进制
int b8 = Convert.ToInt32(base8, 8);//八进制转换十进制
int b10 = Convert.ToInt32(base10, 10);//十进制转换十进制
int b16 = Convert.ToInt32(base16, 16);//十六进制转换十进制
zjx311989
2009-12-12
打赏
举报
回复
楼上很详细了...顶上
旧日的某人
2009-12-12
打赏
举报
回复
有一个公式:二进制数、八进制数、十六进制数的各位数字分别乖以各自的基数的(N-1)次方,其和相加之和便是相应的十进制数。个位,N=1;十位,N=2...举例:
110B=1*2的2次方+1*2的1次方+0*2的0次方=0+4+2+0=6D
110Q=1*8的2次方+1*8的1次方+0*8的0次方=64+8+0=72D
110H=1*16的2次方+1*16的1次方+0*16的0次方=256+16+0=272D
2、十进制数转二进制数、八进制数、十六进制数
方法是相同的,即整数部分用除基取余的算法,小数部分用乘基取整的方法,然后将整数与小数部分拼接成一个数作为转换的最后结果。
3、二进制数转换成其它数据类型
3-1二进制转八进制:从小数点位置开始,整数部分向左,小数部分向右,每三位二进制为一组用一位八进制的数字来表示,不足三位的用0补足,
就是一个相应八进制数的表示。
010110.001100B=26.14Q
八进制转二进制反之则可。
3-2二进制转十进制:见1
3-3二进制转十六进制:从小数点位置开始,整数部分向左,小数部分向右,每四位二进制为一组用一位十六进制的数字来表示,
不足四位的用0补足,就是一个相应十六进制数的表示。
00100110.00010100B=26.14H
十进制转各进制
要将十进制转为各进制的方式,只需除以各进制的权值,取得其余数,第一次的余数当个位数,第二次余数当十位数,其余依此类推,直到被除数小于权值,最后的被除数当最高位数。
一、十进制转二进制
如:55转为二进制
2|55
27――1 个位
13――1 第二位
6――1 第三位
3――0 第四位
1――1 第五位
最后被除数1为第七位,即得110111
二、十进制转八进制
如:5621转为八进制
8|5621
702 ―― 5 第一位(个位)
87 ―― 6 第二位
10 ―― 7 第三位
1 ―― 2 第四位
最后得八进制数:127658
三、十进制数十六进制
如:76521转为十六进制
16|76521
4726 ――5 第一位(个位)
295 ――6 第二位
18 ――6 第三位
1 ―― 2 第四位
最后得1276516
二进制与十六进制的关系
2进制 0000 0001 0010 0011 0100 0101 0110 0111
16进制 0 1 2 3 4 5 6 7
2进制 1000 1001 1010 1011 1100 1101 1110 1111
16进制 8 9 a(10) b(11) c(12) d(13) e(14) f(15)
可以用四位数的二进制数来代表一个16进制,如3A16 转为二进制为:
3为0011,A 为1010,合并起来为00111010。可以将最左边的0去掉得1110102
右要将二进制转为16进制,只需将二进制的位数由右向左每四位一个单位分隔,将各单位对照出16进制的值即可。
二进制与八进制间的关系
二进制 000 001 010 011 100 101 110 111
八进制 0 1 2 3 4 5 6 7
二进制与八进制的关系类似于二进制与十六进制的关系,以八进制的各数为0到7,以三位二进制数来表示。如要将51028 转为二进制,5为101,1为001,0为000,2为010,将这些数的二进制合并后为1010010000102,即是二进制的值。
若要将二进制转为八进制,将二进制的位数由右向左每三位一个单位分隔,将事单位对照出八进制的值即可。
一.在计算机应用中,二进制使用后缀b表示;十进制使用后缀d表示,八进制用Q表示,十六制使用后缀H表示。
二.二进制,十六进制与十进制的计算转换
1.二进制转换为十进制
计算公式:二进制数据X位数字乘以2的X-1次方的积的总和
例:10101011b=( )d
数据
1 0 1 0 1 0 1 1
X-1位
7 6 5 4 3 2 1 0
相应的十进制值即为:27 +25+23+21+20=128+32+8+2+1=171
2.十六进制转换十进制
计算公式:二进制数据X位数字乘以16的X-1次方的积的总和(与二进制转换十制进同理的,将底数换为16)
注意:在十六进制中,10-16依次用A,B,C,D,E,F表示
例:1F3E H=( )d
计算:1*16的3次方+16*16的2次方+3*16的1次方+15*16的0次方=1*4096+16*256+3*16+15*16=4096+4096+48+240=8480
三.十进制与二进制,十六制的计算转换
1.十进制转换为二进制
十进制数据数字除以2的余数的逆序组合
例:404d=( )b
2|404 余0
2|202 余0
2|101 余0
2|50 余1
2|25 余0
2|12 余1
2|6 余0
2|3 余1
2|1
计算结果便是:110101000
2.十进制转换十六进制。。。与上面同理,注意的是10以上的数字用字母表示,除数是16
十六进制与二进制的转换,建议通过十进制来进行中转。
带小数点的十进制转换为二进制时同理,小数店后的数位指数为负指数
一、二进制数转换成十进制数
由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为"按权相加"法。
二、十进制数转换为二进制数
十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。
1. 十进制整数转换为二进制整数
十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
2.十进制小数转换为二进制小数
十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。
然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。
回答者:HackerKinsn - 试用期 一级 2-24 13:31
1.二进制与十进制的转换
(1)二进制转十进制<BR>方法:"按权展开求和"
例:
(1011.01)2 =(1×23+0×22+1×21+1×20+0×2-1+1×2-2)10
=(8+0+2+1+0+0.25)10
=(11.25)10
(2)十进制转二进制
· 十进制整数转二进制数:"除以2取余,逆序输出"
例: (89)10=(1011001)2
2 89
2 44 …… 1
2 22 …… 0
2 11 …… 0
2 5 …… 1
2 2 …… 1
2 1 …… 0
0 …… 1
· 十进制小数转二进制数:"乘以2取整,顺序输出"
例:
(0.625)10= (0.101)2
0.625
X 2
1.25
X 2
0.5
X 2
1.0
lijunhua99
2009-12-12
打赏
举报
回复
用8421 来进行它们之间的转换很简单的!
ztenv
2009-12-12
打赏
举报
回复
没学过进制间的关系吗?和数学的算法是一样的,
-过客-
2009-12-12
打赏
举报
回复
搜索引擎一搜一大堆,又何必到这里来问
要学会利用搜索引擎
C#
程序终止
问题
CLR20R3解决方法
去年在公司局域网部署了一个
C#
编写的自动更新的工具软件,最近有同事反映部分Win7系统电脑安装不了,程序自动安装不了,免安装版又运行不了。 没办法,先解决自动安装不了的
问题
,最后通过关闭防火墙得以解决。接下来可能是很多人都遇到过的CLR20R3
问题
了,报错如下: 找度娘,找必应,一大堆解决方法,一个个尝试,没有解决,最后都快放弃, 想起了老大说过的一句话,
问题
实在解决不了
C#
问题
:System.NullReferenceException:未将对象引用设置到对象的实例
遇到过好多次了,
c#
上是小鸟向中鸟进阶阶段,这个小
问题
绝对不放过! 出现它是由于引用的对象是null或empty导致 声明变量时:(T表示类) T a = null; 此时在栈上有一个地址。地址占4个字节,但地址没有任何指向,即指向内容为空 如果调用T的成员函数,出错:未将对象引用设置到对象实例 参考链接:https://www.cnblogs.com/cyq1162/archive/...
VSCode 编写
C#
代码有提示,但是没有报错
使用VSCode去编写
C#
的时候,突然遇到一个
问题
: 按道理这里的Demoalkdfljadflk是一个未定义的类,应该会给红色的波浪线提示,到这里没有,同时代码不能跟踪进入到源码 原因: 在mac上编写
c#
代码,需要使用mono,类似java的jvm虚拟机 解决: 就算环境配置了mono的路径了,但是还需要在项目里配置(不知道有没有一劳永逸的方法):.vscode->settings.json->添加“"omnisharp.useGlobalMono":"always",” .
c#
问题
:输入一个double, 输出时只显示小数点后三位
编一个程序,定义三个double类型的变量,分别从键盘上输入值给它们,然后用Console.WriteLine方法把它们输出成一列,小数点对齐,保留3位小数。using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; name...
C#
问题
:基础提供程序在 open 上失败。
问题
:基础提供程序在 open 上失败。 解决方法:可以查看webconfig文件中连接字符串是否完整,包括用户名和密码。
C#
111,120
社区成员
642,545
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章