C语言 十进制转换二进制

十进制转换二进制主要采用的是连除倒取余的方法  代码如下

  int num = 8;

int tempArr[32]={0};

int i = 0;

while (num / 2 != 1 ) {

tempArr[i] = num % 2;

num /=2;

i++;

}

tempArr[i+1] = 1;

for (int j = sizeof(tempArr)/sizeof(int)-1; j>=0; j--) {

printf("%d", tempArr[j]);

}

时间: 2024-08-03 15:21:04

C语言 十进制转换二进制的相关文章

Formiko总结整数十进制转换二进制原理

引子: 为什么十进制转二进制的“辗转相除记录余数倒序输出”的算法是正确的?这个问题陪伴了Formiko半年. 实践: 实践一:把十进制数100转换成二进制数的图   上图和和下图唯一的区别在最后一位上,只是除到0和除到1的区别,但在算法本身的理解上应该不会有本质的区别. 实践二: 十进制数100或许太大,不便于一目了然的验证.试一试十进制数1,2,3. 思考: 以上算法的思路是“对原数反复进行除法得到余数,最后将余数倒序输出”.但是看到如图对十进制数100,1,2,3的操作,都看不出原思路的由来

十进制转换二进制

// 十进制转换二进制 private static String convertBinary(int sum) { StringBuffer binary = new StringBuffer(); while (sum != 0 && sum != 1) { binary.insert(0, sum % 2); sum = sum / 2; if (sum == 0 || sum == 1) { binary.insert(0, sum % 2); } } return binary.

Problem O(十进制转换二进制)

Problem Description Give you a number on base ten,you should output it on base two.(0 < n < 1000) Input For each case there is a postive number n on base ten, end of file. Output For each case output a number on base two. Sample Input 1 2 3 Sample O

6-4 十进制转换二进制 (15 分)

本题要求实现一个函数,将正整数n转换为二进制后输出. 函数接口定义: void dectobin( int n ); 函数dectobin应在一行中打印出二进制的n.建议用递归实现. 裁判测试程序样例: #include <stdio.h> void dectobin( int n ); int main() { int n; scanf("%d", &n); dectobin(n); return 0; } /* 你的代码将被嵌在这里 */ 输入样例: 10 输出

C语言-十进制转换为二进制函数

char * itobs(int num, char * str) { int i; static int size = 8 * sizeof(int); for (i = size - 1; i >= 0; i--, num >>= 1) { str[i] = (01 & num) + '0'; } str[size] = '\0'; return str; } 注: char str[8 * sizeof(int) + 1] 参考自:C Primer Plus 第15章 位操

顺序栈-使用顺序栈实现十进制转换二进制

1 #include"stdio.h" 2 #define MaxSize 50 3 typedef int DataType; 4 typedef struct{ 5 DataType elem[MaxSize]; 6 int top; 7 }SeqStack; 8 void initStack(SeqStack &s) 9 { 10 s.top = -1; 11 } 12 int push(SeqStack &s , DataType x) 13 { 14 if(s

进制转换之二进制与十进制转换

一.正整数的十进制转换二进制: 要点:除二取余,倒序排列 解释:将一个十进制数除以二,得到的商再除以二,依此类推直到商等 于一或零时为止,倒取将除得的余数,即换算为二进制数的结果 例如把52换算成二进制数,计算结果如图: 52除以2得到的余数依次为:0.0.1.0.1.1,倒序排列,所以52对应的二进制数就是110100. 由于计算机内部表示数的字节单位都是定长的,以2的幂次展开,或者8位,或者16位,或者32位..... 于是,一个二进制数用计算机表示时,位数不足2的幂次时,高位上要补足若干个

Java 控制台做个十进制和二进制互相转换

计算机使用的是二进制,计算机只认识0和1 我们日常使用的是十进制,满十进一 既然计算机只认识0和1,那么我们日常使用的计算机时如何操作呢 这就需要一套二进制和十进制互相转换的公式了 首先说十进制转换二进制,就是不断的用十进制的数字除以2,直到十进制的数字最后为0时,将余数倒序排列就是十进制的二进制表示了 如下,十进制数字12转换为二进制 12 / 2 = 6 余数为 0 6 / 2 = 3   余数为 0 3 / 2 = 1   余数为 1 1 / 2 = 0   余数为 1 然后将余数倒序连起

python基本数据类型(字节字符十进制十六进制二进制转换)

#公共功能 # 索引:只能取一个元素 # 切片:取多个元素 #len:计算长度 #for name='李露' #utf-8 一个汉字三个字节 for i in name: print(i) bytes_list=bytes(i,encoding='utf-8') #默认输出十六进制 for b in bytes_list: print(b) #循环的时候默认输出十进制 #3.5 for循环的时候,循环的每个元素时字符 #字符->字节 #bytes() #utf-8->3字节 #gbk->