转换整型数为BCD编码二进制数

编写一个函数,转换整型数为BCD编码二进制数。比如1234转换为0x00001234。
源代码:1不能处理大于5的数字不知道哪里的问题。

#include <math.h>
#include <stdio.h>
int main()
{
   int a = 6249;
   int b = 0;
   int c = 0;
   int i = 0, j = 0;

   while ( a > 10)
   {
       b = a % 10;
       c |= (b << 4*7);
       printf("%x\n", c);
       c = c >> 4;
       printf("%x\n", c);
       a = a / 10;
       i++;
   }
   printf("%d\n",i);
   c |= (a << 4*7);
   printf("%x\n", c);
   c = c >> (4*(8-i-1));
   printf("%8x\n", c);
}
时间: 2024-10-06 09:46:07

转换整型数为BCD编码二进制数的相关文章

访问一个绝对地址把一个整型数强制转换 (typecast)为一个指针是合法的

在某工程中,要求设置一绝对地址为0x67a9的整型变量的值为0xaa66.编译器是一个纯粹的ANSI编译器.写代码去完成这一任务. 解析:这一问题测试你是否知道为了访问一个绝对地址把一个整型数强制转换(typecast)为一个指针是合法的.这一问题的实现方式随着个人风格不同而不同.典型的代码如下: 一个较晦涩的方法是: 建议你在面试时使用第一种方案.答案:

java整型数与网络字节序的 byte[] 数组转换关系

java整型数与网络字节序的 byte[] 数组转换关系 工作项目需要在java和c/c++之间进行socket通信,socket通信是以字节流或者字节包进行的,socket发送方须将数据转换为字节流或者字节包,而接收方则将字节流和字节包再转换回相应的数据类型.如果发送方和接收方都是同种语言,则一般只涉及到字节序的调整.而对于java和c/c++的通信,则情况就要复杂一些,主要是因为java中没有unsigned类型,并且java和c在某些数据类型上的长度不一致. 本文就是针对这种情况,整理了j

C#实现整型数据字任意编码任意进制的转换和逆转换

实现如下: using System; using System.Collections.Generic; using System.Linq; using System.Text;  namespace ConsoleApplication1 {      public class Number     {         public string Characters         {             get;             set;         }        

求一个整型数字中有没有相同的部分,例如12386123这个整型数字中相同的部分是123,相同的部分至少应该是2位数,如果有相同部分返回1,如果没有则返回0。方法是先将整型数字转换到数组中,再判断。函数为 int same(int num)其中num是输入的整型数字

import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Test { public static void main(String[] args) { /** * 2.求一个整型数字中有没有相同的部分,例如12386123这个整型数字中相同的部分是123, * 相同的部分至少应该是2位数,如果有相同部分返回1,如果没有则返回0. * 方法是先将整型数字转换到数组中,再判断.

PHP中IP地址与整型数字互相转换详解

IP转换成整型存储是数据库优化一大趋势,不少人目前存储IP时还在使用字符串类型存储,字符串索引比整型索引消耗资源很多,特别是表中数据量大的时候,以及求查询某一个ip段的数据,今天说的ip是指ip4,ip6不在本文范围内. 系统函数ip2long与long2ip PHP中有内置函数ip2long可以将ip地址转换整型. 复制代码代码如下: $ip = '210.110.11.49'; echo ip2long($ip); 输出: 复制代码代码如下: -764540111 输出的整型有负号是因为我们

Java 判断是否为汉字 判断是否为乱码 判断字符串是否为双整型数字 整数 数字

/**  * 判断是否为汉字  *   * @param str  * @return  */ public static boolean isGBK(String str) {  char[] chars = str.toCharArray();  boolean isGBK = false;  for (int i = 0; i < chars.length; i++) {   byte[] bytes = ("" + chars[i]).getBytes();   if (

整型数据的二进制格式和文本格式的传输方式

 1.将1个整型数据输入一个缓冲区char *buffer,实现跨平台传输,以二进制方式和文本方式分别实现写缓冲区和读缓冲区 ---->在网络中传输是大端模式,而在本机上可能是小端模式,这个需要先判断 #include <stdio.h> #include <stdlib.h> #include <string.h> char buf1[1024]; char buf2[1024]; int ascii_write_to(int); int binary_wr

【算法和数据结构】_16_小算法_IntToStr: 将整型数据转换为字符串

1 /* 2 IntToStr: 将整型数据转换为字符串 3 */ 4 5 #include <stdio.h> 6 7 8 void int_to_str(const unsigned long int i_number, char *str); 9 10 int main(int argc,char*argv[]) 11 { 12 unsigned long int i_test; 13 char str[16]; 14 15 i_test=1234567; 16 int_to_str(i

使用指针比较整型数据的大小

该C实例是一个比较简单的实例,但是在该实例中,重点介绍了C语言中比较常用的也是容易出错的指针变量,其中包括指针变量的赋值,指针变量的运算等等.该实例实现了通过使用指针变量来比较3个整形数据,使其从小到大排列,实现比较简单,下面附上我的代码: #include <stdio.h> /** * 通过指针比较三个整数的大小 * @brief main * @return */ /** * 指针,即为变量的地址:指针变量,即数值为 * 指向变量地址的变量 * 指针变量的类型: * 对指针变量的类型说明