关于Java与C类型的几个问题

1.Java byte类型
byte是Java的基础类型之一,它本身与int,char同属于一个级别,它是一个占一个字节(8bit)的整型;
byte是有符号数,范围在-128~127;
byte一般使用时可表示为十进制,八进制,十六进制;

2.一个字符数组可用byte[]来表示
由于基本ASCII码是由8位表示的,所以byte可用来表示所有基本ASCII字符,ASCII表如下:

3.这里来说一下计算机中的数据表示
我们通常所能看到的屏幕上的数据,是由编码表给我们展现的,实际上本身在计算机中存储的都是数,这个数我们说他是整型或者其他是由表示关系决定的;
于是比方说声明一个byte data = 12,
这里写图片描述
如byte是个ASCII字符,则其与int型可直接进制转换:

int dataint = 12
byte databt = (byte)12; //或
databt = (byte)0x0B;

4.C语言函数memset memcpy
函数原型 void *memset(void *s, int ch, size_t n);
函数解释:将s中当前位置后面的n个字节 (typedef unsigned int size_t )用 ch 替换并返回 s ;
memset:作用是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法;

函数原型 void *memcpy(void*dest, const void *src, size_t n);
功能 由src指向地址为起始地址的连续n个字节的数据复制到以destin指向地址为起始地址的空间内。
头文件 string.h
返回值 函数返回一个指向dest的指针;

char[] data = {'a','b','c,'d'};
unsigned char datacopy[5];
memset(datacopy, 0x00, sizeof(datacopy));
memcpy(datacopy, data, 4);
//若只是字符型的复制可以使用strcpy,此处不讲

5.itoa
char*itoa(int value,char*string,int radix);
int value 被转换的整数,char *string 转换后储存的字符数组,int radix 转换进制数,如2,8,10,16 进制等

这个不是C标准库中的函数,而是Windows平台下扩展的,标准库中有sprintf,功能比这个更强,用法跟printf类似:
char str[255];
sprintf(str, “%x”, 100); //将100转为16进制表示的字符串

猜你喜欢

转载自blog.csdn.net/jianin45/article/details/53405443