Outline for other content & Wording & formatting fixes

This commit is contained in:
2025-12-11 00:12:10 +07:00
parent 61e7fe16cb
commit af7f6c3c21
20 changed files with 621 additions and 369 deletions
+345 -326
View File
@@ -1,4 +1,5 @@
#import "../PageTemplate.typ": *
#import "@preview/i-figured:0.2.4"
= ภาษาซี (C Programming Language) <cprogramming>
@@ -139,101 +140,109 @@ float a, b, c;
#show table.cell.where(y: 1): strong
#show table.cell: set par(justify: false, leading: 0.5em)
#table(
columns: 7,
align: horizon + center,
table.header(
table.cell([ชื่อประเภท], rowspan: 2),
table.cell([ประเภทเทียบเท่า], rowspan: 2),
table.cell([จำนวนบิตตามรูปแบบข้อมูล], colspan: 5),
[มาตรฐาน C],
[LP32],
[ILP32],
[LLP64],
[LP64],
#show figure: i-figured.show-figure.with(level: 4)
#figure(
table(
columns: 7,
align: horizon + center,
table.header(
table.cell([ชื่อประเภท], rowspan: 2),
table.cell([ประเภทเทียบเท่า], rowspan: 2),
table.cell([จำนวนบิตตามรูปแบบข้อมูล], colspan: 5),
[มาตรฐาน C],
[LP32],
[ILP32],
[LLP64],
[LP64],
),
table.cell(`char`, align: left),
`char`,
table.cell([อย่างน้อย\ *8*], rowspan: 3),
table.cell([*8*], rowspan: 3),
table.cell([*8*], rowspan: 3),
table.cell([*8*], rowspan: 3),
table.cell([*8*], rowspan: 3),
table.cell(`signed char`, align: left),
`signed char`,
table.cell(`unsigned char`, align: left),
`unsigned char`,
table.cell(`short`, align: left),
table.cell(`short int`, rowspan: 4),
table.cell([อย่างน้อย\ *16*], rowspan: 6),
table.cell([*16*], rowspan: 6),
table.cell([*16*], rowspan: 6),
table.cell([*16*], rowspan: 6),
table.cell([*16*], rowspan: 6),
table.cell(`short int`, align: left),
table.cell(`signed short`, align: left),
table.cell(`signed short int`, align: left),
table.cell(`unsigned short`, align: left),
table.cell([`unsigned`\ `short int`], rowspan: 2),
table.cell(`unsigned short int`, align: left),
table.cell(`int`, align: left),
table.cell(`int`, rowspan: 3),
table.cell([อย่างน้อย\ *16*], rowspan: 5),
table.cell([*16*], rowspan: 5),
table.cell([*32*], rowspan: 5),
table.cell([*32*], rowspan: 5),
table.cell([*32*], rowspan: 5),
table.cell(`signed`, align: left),
table.cell(`signed int`, align: left),
table.cell(`unsigned`, align: left),
table.cell([`unsigned int`], rowspan: 2),
table.cell(`unsigned int`, align: left),
table.cell(`long`, align: left),
table.cell(`long int`, rowspan: 4),
table.cell([อย่างน้อย\ *32*], rowspan: 6),
table.cell([*32*], rowspan: 6),
table.cell([*32*], rowspan: 6),
table.cell([*32*], rowspan: 6),
table.cell([*64*], rowspan: 6),
table.cell(`long int`, align: left),
table.cell(`signed long`, align: left),
table.cell(`signed long int`, align: left),
table.cell(`unsigned long`, align: left),
table.cell([`unsigned`\ `long int`], rowspan: 2),
table.cell(`unsigned long int`, align: left),
),
table.cell(`char`, align: left),
`char`,
table.cell([อย่างน้อย\ *8*], rowspan: 3),
table.cell([*8*], rowspan: 3),
table.cell([*8*], rowspan: 3),
table.cell([*8*], rowspan: 3),
table.cell([*8*], rowspan: 3),
table.cell(`signed char`, align: left),
`signed char`,
table.cell(`unsigned char`, align: left),
`unsigned char`,
table.cell(`short`, align: left),
table.cell(`short int`, rowspan: 4),
table.cell([อย่างน้อย\ *16*], rowspan: 6),
table.cell([*16*], rowspan: 6),
table.cell([*16*], rowspan: 6),
table.cell([*16*], rowspan: 6),
table.cell([*16*], rowspan: 6),
table.cell(`short int`, align: left),
table.cell(`signed short`, align: left),
table.cell(`signed short int`, align: left),
table.cell(`unsigned short`, align: left),
table.cell([`unsigned`\ `short int`], rowspan: 2),
table.cell(`unsigned short int`, align: left),
table.cell(`int`, align: left),
table.cell(`int`, rowspan: 3),
table.cell([อย่างน้อย\ *16*], rowspan: 5),
table.cell([*16*], rowspan: 5),
table.cell([*32*], rowspan: 5),
table.cell([*32*], rowspan: 5),
table.cell([*32*], rowspan: 5),
table.cell(`signed`, align: left),
table.cell(`signed int`, align: left),
table.cell(`unsigned`, align: left),
table.cell([`unsigned int`], rowspan: 2),
table.cell(`unsigned int`, align: left),
table.cell(`long`, align: left),
table.cell(`long int`, rowspan: 4),
table.cell([อย่างน้อย\ *32*], rowspan: 6),
table.cell([*32*], rowspan: 6),
table.cell([*32*], rowspan: 6),
table.cell([*32*], rowspan: 6),
table.cell([*64*], rowspan: 6),
table.cell(`long int`, align: left),
table.cell(`signed long`, align: left),
table.cell(`signed long int`, align: left),
table.cell(`unsigned long`, align: left),
table.cell([`unsigned`\ `long int`], rowspan: 2),
table.cell(`unsigned long int`, align: left),
caption: [ขนาดของข้อมูลเป็นบิต],
)
#pagebreak()
#table(
columns: 7,
align: horizon + center,
table.header(
table.cell([ชื่อประเภท], rowspan: 2),
table.cell([ประเภทเทียบเท่า], rowspan: 2),
table.cell([จำนวนบิตตามรูปแบบข้อมูล], colspan: 5),
[มาตรฐาน C],
[LP32],
[ILP32],
[LLP64],
[LP64],
#figure(
table(
columns: 7,
align: horizon + center,
table.header(
table.cell([ชื่อประเภท], rowspan: 2),
table.cell([ประเภทเทียบเท่า], rowspan: 2),
table.cell([จำนวนบิตตามรูปแบบข้อมูล], colspan: 5),
[มาตรฐาน C],
[LP32],
[ILP32],
[LLP64],
[LP64],
),
table.cell(`long long`, align: left),
table.cell([`long long int` (C99)], rowspan: 4),
table.cell([อย่างน้อย\ *64*], rowspan: 6),
table.cell([*64*], rowspan: 6),
table.cell([*64*], rowspan: 6),
table.cell([*64*], rowspan: 6),
table.cell([*64*], rowspan: 6),
table.cell(`long long int`, align: left),
table.cell(`signed long long`, align: left),
table.cell(`signed long long int`, align: left),
table.cell(`unsigned long long`, align: left),
table.cell([`unsigned long`\ `long int` (C99)], rowspan: 2),
table.cell(`unsigned long long int`, align: left),
),
table.cell(`long long`, align: left),
table.cell([`long long int` (C99)], rowspan: 4),
table.cell([อย่างน้อย\ *64*], rowspan: 6),
table.cell([*64*], rowspan: 6),
table.cell([*64*], rowspan: 6),
table.cell([*64*], rowspan: 6),
table.cell([*64*], rowspan: 6),
table.cell(`long long int`, align: left),
table.cell(`signed long long`, align: left),
table.cell(`signed long long int`, align: left),
table.cell(`unsigned long long`, align: left),
table.cell([`unsigned long`\ `long int` (C99)], rowspan: 2),
table.cell(`unsigned long long int`, align: left),
caption: [ขนาดของข้อมูลเป็นบิต (ต่อ)],
)
และนอกจากค่าบิตขั้นต่ำ มาตรฐาน C นั้นการันตีว่า:
@@ -342,265 +351,275 @@ float a, b, c;
#show math.equation: set text(font: "Noto Sans Math")
#set list(indent: 0em)
#table(
columns: 5,
align: horizon + center,
table.header(
table.cell([ประเภท], rowspan: 2),
table.cell([ขนาด\ (บิต)], rowspan: 2),
table.cell([รูปแบบ], rowspan: 2),
table.cell([ระยะค่า], colspan: 2),
[โดยประมาณ], [แน่นอน],
),
table.cell([ตัวอักษร], rowspan: 4),
table.cell([8], rowspan: 2),
[signed],
[],
[*-128* ถึง *127*],
#figure(
table(
columns: 5,
align: horizon + center,
table.header(
table.cell([ประเภท], rowspan: 2),
table.cell([ขนาด\ (บิต)], rowspan: 2),
table.cell([รูปแบบ], rowspan: 2),
table.cell([ระยะค่า], colspan: 2),
[โดยประมาณ], [แน่นอน],
),
table.cell([ตัวอักษร], rowspan: 4),
table.cell([8], rowspan: 2),
[signed],
[],
[*-128* ถึง *127*],
[unsigned],
[],
[*0* ถึง *255*],
[unsigned],
[],
[*0* ถึง *255*],
[16],
[UTF-16],
[],
[*0* ถึง *65535*],
[16],
[UTF-16],
[],
[*0* ถึง *65535*],
[32],
[UTF-32],
[],
[*0* ถึง *1114111 (0x10ffff)*],
[32],
[UTF-32],
[],
[*0* ถึง *1114111 (0x10ffff)*],
table.cell([จำนวน\ เต็ม], rowspan: 6),
table.cell([16], rowspan: 2),
[signed],
[*± 3.27 · 104*],
[*-32768* ถึง *32767*],
table.cell([จำนวน\ เต็ม], rowspan: 6),
table.cell([16], rowspan: 2),
[signed],
[*± 3.27 · 104*],
[*-32768* ถึง *32767*],
[unsigned],
[*0* ถึง *6.55 · 104*],
[*0* ถึง *65535*],
[unsigned],
[*0* ถึง *6.55 · 104*],
[*0* ถึง *65535*],
table.cell([32], rowspan: 2),
[signed],
[*± 2.14 · 109*],
[*-2,147,483,648* ถึง *2,147,483,647*],
table.cell([32], rowspan: 2),
[signed],
[*± 2.14 · 109*],
[*-2,147,483,648* ถึง *2,147,483,647*],
[unsigned],
[*0* ถึง *4.29 · 109*],
[*0* ถึง *4,294,967,295*],
[unsigned],
[*0* ถึง *4.29 · 109*],
[*0* ถึง *4,294,967,295*],
table.cell([64], rowspan: 2),
[signed],
[*± 9.22 · 1018*],
[*-9,223,372,036,854,775,808* ถึง *9,223,372,036,854,775,807*],
table.cell([64], rowspan: 2),
[signed],
[*± 9.22 · 1018*],
[*-9,223,372,036,854,775,808* ถึง *9,223,372,036,854,775,807*],
[unsigned],
[*0* ถึง *1.84 · 1019*],
[*0* ถึง *18,446,744,073,709,551,615*],
[unsigned],
[*0* ถึง *1.84 · 1019*],
[*0* ถึง *18,446,744,073,709,551,615*],
table.cell([ทศนิยม\ ไบนารี], rowspan: 2),
[32],
[IEEE-754],
table.cell(
[
- min subnormal:
#math.equation($± 1.401,298,4 · 10^(-45)$, alt: "บวกลบ 1.4012984 คูณ 10 ยกกำลัง -45")
- min normal:
#math.equation($± 1.175,494,3 · 10^(-38)$, alt: "บวกลบ 1.1754943 คูณ 10 ยกกำลัง -38")
- max: \
#math.equation($± 3.402,823,4 · 10^(38)$, alt: "บวกลบ 3.4028234 คูณ 10 ยกกำลัง 38")
],
align: left,
),
table.cell(
[
- min subnormal:\
`±0x1p-149`
- min normal:\
`±0x1p-126`
- max:\
`±0x1.fffffep+127`
],
align: left,
),
table.cell([ทศนิยม\ ไบนารี], rowspan: 2),
[32],
[IEEE-754],
table.cell(
[
- min subnormal:
#math.equation($± 1.401,298,4 · 10^(-45)$, alt: "บวกลบ 1.4012984 คูณ 10 ยกกำลัง -45")
- min normal:
#math.equation($± 1.175,494,3 · 10^(-38)$, alt: "บวกลบ 1.1754943 คูณ 10 ยกกำลัง -38")
- max: \
#math.equation($± 3.402,823,4 · 10^(38)$, alt: "บวกลบ 3.4028234 คูณ 10 ยกกำลัง 38")
],
align: left,
),
table.cell(
[
- min subnormal:\
`±0x1p-149`
- min normal:\
`±0x1p-126`
- max:\
`±0x1.fffffep+127`
],
align: left,
),
[64],
[IEEE-754],
table.cell(
[
- min subnormal:
#math.equation($± 4.940,656,458,412\ · 10^(-324)$, alt: "บวกลบ 4.940656458412 คูณ 10 ยกกำลัง ลบ 324", block: true)
- min normal:
#math.equation(
$± 2.225,073,858,507,201,\ 4 · 10^(-308)$,
alt: "บวกลบ 2.2250738585072014 คูณ 10 ยกกำลัง ลบ 308",
block: true,
)
- max:
#math.equation(
$± 1.797,693,134,862,315,\ 7 · 10^308$,
alt: "บวกลบ 1.7976931348623157 คูณ 10 ยกกำลัง 308",
block: true,
)
],
align: left,
),
table.cell(
[
- min subnormal:
`±0x1p-1074`
- min normal:\
`±0x1p-1022`
- max:
`±0x1` \ `.fffffffffffffp+1023`
],
align: left,
[64],
[IEEE-754],
table.cell(
[
- min subnormal:
#math.equation(
$± 4.940,656,458,412\ · 10^(-324)$,
alt: "บวกลบ 4.940656458412 คูณ 10 ยกกำลัง ลบ 324",
block: true,
)
- min normal:
#math.equation(
$± 2.225,073,858,507,201,\ 4 · 10^(-308)$,
alt: "บวกลบ 2.2250738585072014 คูณ 10 ยกกำลัง ลบ 308",
block: true,
)
- max:
#math.equation(
$± 1.797,693,134,862,315,\ 7 · 10^308$,
alt: "บวกลบ 1.7976931348623157 คูณ 10 ยกกำลัง 308",
block: true,
)
],
align: left,
),
table.cell(
[
- min subnormal:
`±0x1p-1074`
- min normal:\
`±0x1p-1022`
- max:
`±0x1` \ `.fffffffffffffp+1023`
],
align: left,
),
),
caption: [ตารางแสดงขอบเขตประเภทข้อมูล],
)
#pagebreak()
#table(
columns: 5,
align: horizon + center,
table.header(
table.cell([ประเภท], rowspan: 2),
table.cell([ขนาด\ (บิต)], rowspan: 2),
table.cell([รูปแบบ], rowspan: 2),
table.cell([ระยะค่า], colspan: 2),
[โดยประมาณ], [แน่นอน],
),
#figure(
table(
columns: 5,
align: horizon + center,
table.header(
table.cell([ประเภท], rowspan: 2),
table.cell([ขนาด\ (บิต)], rowspan: 2),
table.cell([รูปแบบ], rowspan: 2),
table.cell([ระยะค่า], colspan: 2),
[โดยประมาณ], [แน่นอน],
),
table.cell([ทศนิยม\ ไบนารี], rowspan: 2),
[80],
[x86],
table.cell(
[
- min subnormal:
#math.equation(
$± 3.645,199,531,882,474,\ 602,528 · 10^(-4951)$,
alt: "บวกลบ 3.645199531882474602528 คูณ 10 ยกกำลัง ลบ 4951",
block: true,
)
- min normal:
#math.equation(
$± 3.362,103,143,112,093,\ 506,263 · 10^(-4932)$,
alt: "บวกลบ 3.362103143112093506263 คูณ 10 ยกกำลัง ลบ 4932",
block: true,
)
- max:
#math.equation(
$± 1.189,731,495,357,231,\ 765,021 · 10^(4932)$,
alt: "บวกลบ 1.189731495357231765021 คูณ 10 ยกกำลัง 4932",
block: true,
)
],
align: left,
),
table.cell(
[
- min subnormal:
`±0x1p-16445`
- min normal:
`±0x1p-16382`
- max:
`±0x1.ffffffff`\ `fffffffep+16383`
],
align: left,
),
table.cell([ทศนิยม\ ไบนารี], rowspan: 2),
[80],
[x86],
table.cell(
[
- min subnormal:
#math.equation(
$± 3.645,199,531,882,474,\ 602,528 · 10^(-4951)$,
alt: "บวกลบ 3.645199531882474602528 คูณ 10 ยกกำลัง ลบ 4951",
block: true,
)
- min normal:
#math.equation(
$± 3.362,103,143,112,093,\ 506,263 · 10^(-4932)$,
alt: "บวกลบ 3.362103143112093506263 คูณ 10 ยกกำลัง ลบ 4932",
block: true,
)
- max:
#math.equation(
$± 1.189,731,495,357,231,\ 765,021 · 10^(4932)$,
alt: "บวกลบ 1.189731495357231765021 คูณ 10 ยกกำลัง 4932",
block: true,
)
],
align: left,
),
table.cell(
[
- min subnormal:
`±0x1p-16445`
- min normal:
`±0x1p-16382`
- max:
`±0x1.ffffffff`\ `fffffffep+16383`
],
align: left,
),
[128],
[IEEE-754],
table.cell(
[
- min subnormal:
#math.equation(
$± 6.475,175,119,438,025,\ 110,924,438,958,227,\ 646,552,5 · 10^(-4966)$,
alt: "บวกลบ 6.4751751194380251109244389582276465525 คูณ 10 ยกกำลัง ลบ 4966",
block: true,
)
- min normal:
#math.equation(
$± 3.362,103,143,112,093,\ 506,262,677,817,321,\ 752,602,6 · 10^(-4932)$,
alt: "บวกลบ 3.3621031431120935062626778173217526026 คูณ 10 ยกกำลัง ลบ 4932",
block: true,
)
- max:
#math.equation(
$± 1.189,731,495,357,231,\ 765,085,759,326,628,\ 007,016,2 · 10^4932$,
alt: "บวกลบ 1.1897314953572317650857593266280070162 คูณ 10 ยกกำลัง 4932",
block: true,
)
],
align: left,
),
table.cell(
[
- min subnormal:
`±0x1p-16494`
- min normal:
`±0x1p-16382`
- max:
`±0x1.ffffffffffffff`\ `ffffffffffffffp+16383`
],
align: left,
),
[128],
[IEEE-754],
table.cell(
[
- min subnormal:
#math.equation(
$± 6.475,175,119,438,025,\ 110,924,438,958,227,\ 646,552,5 · 10^(-4966)$,
alt: "บวกลบ 6.4751751194380251109244389582276465525 คูณ 10 ยกกำลัง ลบ 4966",
block: true,
)
- min normal:
#math.equation(
$± 3.362,103,143,112,093,\ 506,262,677,817,321,\ 752,602,6 · 10^(-4932)$,
alt: "บวกลบ 3.3621031431120935062626778173217526026 คูณ 10 ยกกำลัง ลบ 4932",
block: true,
)
- max:
#math.equation(
$± 1.189,731,495,357,231,\ 765,085,759,326,628,\ 007,016,2 · 10^4932$,
alt: "บวกลบ 1.1897314953572317650857593266280070162 คูณ 10 ยกกำลัง 4932",
block: true,
)
],
align: left,
),
table.cell(
[
- min subnormal:
`±0x1p-16494`
- min normal:
`±0x1p-16382`
- max:
`±0x1.ffffffffffffff`\ `ffffffffffffffp+16383`
],
align: left,
),
table.cell([ทศนิยม\ เดซิมอล], rowspan: 3),
[32],
[IEEE-754],
[],
table.cell(
[
- min subnormal:\
#math.equation($± 1 · 10^(-101)$, alt: "บวกลบ 1 คูณ 10 ยกกำลัง ลบ 101")
- min normal:\
#math.equation($± 1 · 10^(-95)$, alt: "บวกลบ 1 คูณ 10 ยกกำลัง ลบ 95")
- max:\
#math.equation($± 9.999'999 · 10^96$, alt: "บวกลบ 9.999999 คูณ 10 ยกกำลัง 96")
],
align: left,
),
table.cell([ทศนิยม\ เดซิมอล], rowspan: 3),
[32],
[IEEE-754],
[],
table.cell(
[
- min subnormal:\
#math.equation($± 1 · 10^(-101)$, alt: "บวกลบ 1 คูณ 10 ยกกำลัง ลบ 101")
- min normal:\
#math.equation($± 1 · 10^(-95)$, alt: "บวกลบ 1 คูณ 10 ยกกำลัง ลบ 95")
- max:\
#math.equation($± 9.999'999 · 10^96$, alt: "บวกลบ 9.999999 คูณ 10 ยกกำลัง 96")
],
align: left,
),
[64],
[IEEE-754],
[],
table.cell(
[
- min subnormal:\
#math.equation($± 1 · 10^(-398)$, alt: "บวกลบ 1 คูณ 10 ยกกำลัง ลบ -398")
- min normal:\
#math.equation($± 1 · 10^(-383)$, alt: "บวกลบ 1 คูณ 10 ยกกำลัง ลบ 383")
- max:
#math.equation(
$± 9.999'999'999'999'999\ · 10^384$,
alt: "บวกลบ 9.999999999999999 คูณ 10 ยกกำลัง 384",
block: true,
)
],
align: left,
),
[64],
[IEEE-754],
[],
table.cell(
[
- min subnormal:\
#math.equation($± 1 · 10^(-398)$, alt: "บวกลบ 1 คูณ 10 ยกกำลัง ลบ -398")
- min normal:\
#math.equation($± 1 · 10^(-383)$, alt: "บวกลบ 1 คูณ 10 ยกกำลัง ลบ 383")
- max:
#math.equation(
$± 9.999'999'999'999'999\ · 10^384$,
alt: "บวกลบ 9.999999999999999 คูณ 10 ยกกำลัง 384",
block: true,
)
],
align: left,
),
[128],
[IEEE-754],
[],
table.cell(
[
- min subnormal:\
#math.equation($± 1 · 10^(-6176)$, alt: "บวกลบ 1 คูณ 10 ยกกำลัง ลบ 6176")
- min normal:\
#math.equation($± 1 · 10^(-6143)$, alt: "บวกลบ 1 คูณ 10 ยกกำลัง ลบ 6143")
- max:
#math.equation(
$ ± 9.999'999'999'999'999'\ 999'999'999'999'999'999\ · 10^6144 $,
alt: "บวกลบ 9.999999999999999999999999999999999 คูณ 10 ยกกำลัง 6144",
block: true,
)
],
align: left,
[128],
[IEEE-754],
[],
table.cell(
[
- min subnormal:\
#math.equation($± 1 · 10^(-6176)$, alt: "บวกลบ 1 คูณ 10 ยกกำลัง ลบ 6176")
- min normal:\
#math.equation($± 1 · 10^(-6143)$, alt: "บวกลบ 1 คูณ 10 ยกกำลัง ลบ 6143")
- max:
#math.equation(
$ ± 9.999'999'999'999'999'\ 999'999'999'999'999'999\ · 10^6144 $,
alt: "บวกลบ 9.999999999999999999999999999999999 คูณ 10 ยกกำลัง 6144",
block: true,
)
],
align: left,
),
),
caption: [ตารางแสดงขอบเขตประเภทข้อมูล (ต่อ)],
)
#set list(indent: 1em)