鱼C论坛

 找回密码
 立即注册
查看: 1580|回复: 7

[技术交流] 二进制十进制十六进制

[复制链接]
发表于 2021-11-23 19:05:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
一直没明白十进制 二进制 十六进制到底是什么意思
他们之间的转换又是什么意思?
求大佬指教。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-11-23 19:22:37 | 显示全部楼层
本帖最后由 jackz007 于 2021-11-23 19:27 编辑

       就是同一个数,多种不同的表达形式而已,比如,十进制数 12 ,写成二进制是 0000 1100,写成八进制是 14,写成十六进制就是 0x0c,其实,它们都是同一个数,十进制数 12。我们通常不用非十进制表达,那是因为我们更加熟悉和习惯于十进制数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-23 19:55:24 | 显示全部楼层
文字解释看着很枯燥,建议去B站浏览相关视频
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-23 19:57:45 | 显示全部楼层
a327904410 发表于 2021-11-23 19:55
文字解释看着很枯燥,建议去B站浏览相关视频

我好像理解了一点,但是我就是不知道是怎么算出来的。比如35的二进制 不可能数到第35吧,有没有一些算法之类的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-23 20:05:55 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-11-23 20:25:59 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-23 21:57:04 | 显示全部楼层
本帖最后由 jackz007 于 2021-11-23 21:58 编辑
  1. #include <stdio.h>

  2. /* 本函数可以接受十进制到 2 ~ 16 进制数的转换,输入参数 d 是准备转换的目标进制数 */
  3. char * foo(char s[] , int n , int d)
  4. {
  5.         char b[] = "0123456789ABCDEF"                                 ;
  6.         int e , k                                                     ;
  7.         if(d >= 2 && d <= 16) {
  8.                 for(k = n , e = 0 ; k ; k /= d , e ++)                ;
  9.                 for(s[e] = 0 ; e ; n /= d , e --) s[e - 1] = b[n % d] ;
  10.         } else s[0] = 0                                               ;
  11.         return s                                                      ;
  12. }

  13. int main(void)
  14. {
  15.         char s[256]                                                   ;
  16.         int x                                                         ;
  17.         scanf("%d" , & x)                                             ;
  18.         printf("  二进制 : %s\n" , foo(s , x , 2))                    ;
  19.         printf("  八进制 : %s\n" , foo(s , x , 8))                    ;
  20.         printf("  十进制 : %s\n" , foo(s , x , 10))                   ;
  21.         printf("十六进制 : %s\n" , foo(s , x , 16))                   ;
  22. }
复制代码

        编译、运行实况:
  1. D:\00.Excise\C>g++ -o x x.c

  2. D:\00.Excise\C>x
  3. 98765
  4.   二进制 : 11000000111001101
  5.   八进制 : 300715
  6.   十进制 : 98765
  7. 十六进制 : 181CD

  8. D:\00.Excise\C>x
  9. 12
  10.   二进制 : 1100
  11.   八进制 : 14
  12.   十进制 : 12
  13. 十六进制 : C

  14. D:\00.Excise\C>
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-12-7 20:31:38 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-11 03:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表